[INFO] cloning repository https://github.com/taodaling/rustcp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/taodaling/rustcp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 64ef8dd5ce66925b3f9f892c9798654523e1c283
[INFO] checking taodaling/rustcp against try#7b3da9103634dffd4f4365cfd8642427c781d99f+rustflags=-Dinherent-method-on-receiver for 152214-denied
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftaodaling%2Frustcp" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/taodaling/rustcp
[INFO] finished tweaking git repo https://github.com/taodaling/rustcp
[INFO] tweaked toml for git repo https://github.com/taodaling/rustcp written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/taodaling/rustcp on toolchain 7b3da9103634dffd4f4365cfd8642427c781d99f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/taodaling/rustcp 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" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /workspace/builds/worker-6-tc2/source/contest/Cargo.toml
[INFO] [stderr] workspace: /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e32965dee9fb61a5c6ce67073d3d67ea32365eb4fccb06cc522d99ed4f01cd68
[INFO] running `Command { std: "docker" "start" "-a" "e32965dee9fb61a5c6ce67073d3d67ea32365eb4fccb06cc522d99ed4f01cd68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e32965dee9fb61a5c6ce67073d3d67ea32365eb4fccb06cc522d99ed4f01cd68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e32965dee9fb61a5c6ce67073d3d67ea32365eb4fccb06cc522d99ed4f01cd68", kill_on_drop: false }`
[INFO] [stdout] e32965dee9fb61a5c6ce67073d3d67ea32365eb4fccb06cc522d99ed4f01cd68
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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 -Dinherent-method-on-receiver" "-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+7b3da9103634dffd4f4365cfd8642427c781d99f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4a1444c60f89e3e0b10a7bfde7cf3394c779600af9c40b06adfa8a1460c838b4
[INFO] running `Command { std: "docker" "start" "-a" "4a1444c60f89e3e0b10a7bfde7cf3394c779600af9c40b06adfa8a1460c838b4", kill_on_drop: false }`
[INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
[INFO] [stderr] package:   /opt/rustwide/workdir/contest/Cargo.toml
[INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml
[INFO] [stderr] warning: virtual workspace defaulting to `resolver = "1"` despite one or more workspace members being on edition 2021 which implies `resolver = "2"`
[INFO] [stderr]   |
[INFO] [stderr]   = note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
[INFO] [stderr]   = note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
[INFO] [stderr]   = note: for more details see https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions
[INFO] [stderr]     Checking contest v0.1.0 (/opt/rustwide/workdir/contest)
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[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: `num_gcd::gcd`
[INFO] [stdout]  --> contest/src/math.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     num_gcd::gcd,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_float::float`
[INFO] [stdout]  --> contest/src/arithmetic.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_float::float, num_number::FromNumber};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(crate) use AddTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:122:16
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub(crate) use MulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddMulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub(crate) use AddMulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> contest/src/miller_rabin.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::rand::{rng, random};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convolution_brute_force`
[INFO] [stdout]  --> contest/src/poly_ntt.rs:9:163
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...ture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim},
[INFO] [stdout]   |                                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type mi0 = StaticModInt<i32, MF469762049>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type mi1 = StaticModInt<i32, MF998244353>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | type mi2 = StaticModInt<i32, MF167772161>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type cv0 = ConvolutionNTT<i32, mi0>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | type cv1 = ConvolutionNTT<i32, mi1>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | type cv2 = ConvolutionNTT<i32, mi2>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ntt` and `poly::Poly`
[INFO] [stdout]   --> contest/src/poly_ntt_test.rs:1:68
[INFO] [stdout]    |
[INFO] [stdout]  1 | use crate::{static_modint::{StaticModInt, MF998244353}, poly_ntt::{ntt, ConvolutionNTT}, poly::Poly};
[INFO] [stdout]    |                                                                    ^^^                   ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub mod poly_ntt_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionMTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[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: `num_gcd::gcd`
[INFO] [stdout]  --> contest/src/math.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     num_gcd::gcd,
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_float::float`
[INFO] [stdout]  --> contest/src/arithmetic.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_float::float, num_number::FromNumber};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(crate) use AddTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:122:16
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub(crate) use MulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddMulTagImpl`
[INFO] [stdout]    --> contest/src/arithmetic.rs:129:16
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub(crate) use AddMulTagImpl;
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rng`
[INFO] [stdout]  --> contest/src/miller_rabin.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::rand::{rng, random};
[INFO] [stdout]   |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Add`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::Add;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convolution_brute_force`
[INFO] [stdout]  --> contest/src/poly_ntt.rs:9:163
[INFO] [stdout]   |
[INFO] [stdout] 9 | ...ture::Field, poly_common::{poly_extend, poly_length, convolution_brute_force, poly_trim},
[INFO] [stdout]   |                                                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type mi0 = StaticModInt<i32, MF469762049>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::FromNumber`
[INFO] [stdout]  --> contest/src/poly_common.rs:1:66
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> contest/src/poly_bf.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout]   |                                         ^ ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout] 5 + pub struct ConvolutionBF<T>(PhantomData<T >);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Convolution` and `Poly`
[INFO] [stdout]  --> contest/src/poly_interpolation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     poly::{Convolution, Poly},
[INFO] [stdout]   |            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Pointer`
[INFO] [stdout]  --> contest/src/linear_feedback_shift_register.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}};
[INFO] [stdout]   |                                                                ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug_discard` and `debug`
[INFO] [stdout]  --> contest/src/linear_recurrence.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 |     macros::{should, should_eq, debug_discard, debug},
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `linear_recurrence::kth_term_of_linear_recurrence`, `macros::debug_discard`, `num_integer::Integer`, and `num_number::FromNumber`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:1:13
[INFO] [stdout]    |
[INFO] [stdout]  1 | ...::{linear_recurrence::kth_term_of_linear_recurrence, static_modint::{StaticModInt, MF998244353}, num_number::FromNumber, poly_bf::ConvolutionBF, num_integer::Integer, macros::debug_discard};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                              ^^^^^^^^^^^^^^^^^^^^^^                          ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityMul`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:2:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | use crate::arithmetic::IdentityMul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::arithmetic::IdentityAdd`
[INFO] [stdout]   --> contest/src/linear_recurrence_test.rs:3:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | use crate::arithmetic::IdentityAdd;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]   --> contest/src/lib.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub mod linear_recurrence_test;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type conv = ConvolutionBF<mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `xorshift128p_state` should have an upper camel case name
[INFO] [stdout]  --> contest/src/rand.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct xorshift128p_state(u64, u64);
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_real.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `str::FromStr` and `string::ParseError`
[INFO] [stdout]  --> contest/src/modint.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{str::FromStr, string::ParseError, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/dynamic_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DynamicModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) use DynamicModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/static_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/static_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StaticModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/static_modint.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) use StaticModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> contest/src/enumerate_prime.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut`, `ShlAssign`, and `Shl`
[INFO] [stdout]  --> contest/src/bitset.rs:1:114
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}};
[INFO] [stdout]   |                                                     ^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:18:6
[INFO] [stdout]    |
[INFO] [stdout] 18 | type mi1 = StaticModInt<i32, MF998244353>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pointer`
[INFO] [stdout]  --> contest/src/num_float.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{Debug, Display, Pointer},
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | type mi2 = StaticModInt<i32, MF167772161>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case: `Mi2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv0` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:21:6
[INFO] [stdout]    |
[INFO] [stdout] 21 | type cv0 = ConvolutionNTT<i32, mi0>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv1` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | type cv1 = ConvolutionNTT<i32, mi1>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `cv2` should have an upper camel case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:23:6
[INFO] [stdout]    |
[INFO] [stdout] 23 | type cv2 = ConvolutionNTT<i32, mi2>;
[INFO] [stdout]    |      ^^^ help: convert the identifier to upper camel case (notice the capitalization): `Cv2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_ntt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/poly_mtt_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type conv = ConvolutionMTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::FromNumber`
[INFO] [stdout]  --> contest/src/poly_common.rs:1:66
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{algebraic_structure::{Ring, Field}, math::log2_ceil, num_number::FromNumber};
[INFO] [stdout]   |                                                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> contest/src/poly_bf.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout]   |                                         ^ ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 - pub struct ConvolutionBF<T>(PhantomData<(T)>);
[INFO] [stdout] 5 + pub struct ConvolutionBF<T>(PhantomData<T >);
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Convolution` and `Poly`
[INFO] [stdout]  --> contest/src/poly_interpolation.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 |     poly::{Convolution, Poly},
[INFO] [stdout]   |            ^^^^^^^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Display` and `Pointer`
[INFO] [stdout]  --> contest/src/linear_feedback_shift_register.rs:1:64
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{ops::{Index}, cmp::max, collections::VecDeque, fmt::{Display, Pointer}};
[INFO] [stdout]   |                                                                ^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug_discard` and `debug`
[INFO] [stdout]  --> contest/src/linear_recurrence.rs:3:33
[INFO] [stdout]   |
[INFO] [stdout] 3 |     macros::{should, should_eq, debug_discard, debug},
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:4:6
[INFO] [stdout]   |
[INFO] [stdout] 4 | type mi = StaticModInt<i32, MF998244353>;
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/linear_recurrence_test.rs:5:6
[INFO] [stdout]   |
[INFO] [stdout] 5 | type conv = ConvolutionBF<mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `xorshift128p_state` should have an upper camel case name
[INFO] [stdout]  --> contest/src/rand.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct xorshift128p_state(u64, u64);
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `Xorshift128pState`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_real.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{num_number::{Number, FromNumber}, num_concrete::Concrete};
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `str::FromStr` and `string::ParseError`
[INFO] [stdout]  --> contest/src/modint.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{str::FromStr, string::ParseError, hash::Hash};
[INFO] [stdout]   |           ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/dynamic_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DynamicModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:95:16
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) use DynamicModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error`, `num::ParseIntError`, `self`, and `string::ParseError`
[INFO] [stdout]  --> contest/src/static_modint.rs:2:11
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{self, Debug, Display, Error},
[INFO] [stdout]   |           ^^^^                  ^^^^^
[INFO] [stdout] 3 |     marker::PhantomData,
[INFO] [stdout] 4 |     num::ParseIntError,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 7 |     string::ParseError, hash::Hash,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `algebraic_structure::*`
[INFO] [stdout]   --> contest/src/static_modint.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     algebraic_structure::*,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StaticModulusFactoryImpl`
[INFO] [stdout]   --> contest/src/static_modint.rs:40:16
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) use StaticModulusFactoryImpl;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `max`
[INFO] [stdout]  --> contest/src/enumerate_prime.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::cmp::{max, min};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `IndexMut`, `ShlAssign`, and `Shl`
[INFO] [stdout]  --> contest/src/bitset.rs:1:114
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...BitXor, BitAndAssign, BitOrAssign, BitXorAssign, Shl, ShlAssign, Index, IndexMut}};
[INFO] [stdout]   |                                                     ^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Pointer`
[INFO] [stdout]  --> contest/src/num_float.rs:2:27
[INFO] [stdout]   |
[INFO] [stdout] 2 |     fmt::{Debug, Display, Pointer},
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `float` should have an upper camel case name
[INFO] [stdout]   --> contest/src/num_float.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct float(f64);
[INFO] [stdout]    |            ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> contest/src/binary_lifting_compress_on_tree.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}};
[INFO] [stdout]   |                                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Add`
[INFO] [stdout]  --> contest/src/persistent_segtree.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]  --> contest/src/lichao_segtree.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{Ordering, max}, mem::swap};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         ///
[INFO] [stdout] 77 | |         ///     a.0 x + a.1 = b.0 x + b.1
[INFO] [stdout] 78 | |         /// =>  x = (b.1 - a.1) / (a.0 - b.0)
[INFO] [stdout] 79 | |         ///
[INFO] [stdout]    | |_________--^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `take`
[INFO] [stdout]  --> contest/src/leftist_tree.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `argmax_by` and `num_number::Number`
[INFO] [stdout]  --> contest/src/tree_diameter.rs:1:102
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |                                                      ^^^^^^^^^   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> contest/src/collection.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, mem::swap};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_permutation`
[INFO] [stdout]  --> contest/src/bipartite_match_kuhn.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     shuffle::{random_permutation, shuffle},
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `debug`
[INFO] [stdout]   --> contest/src/macros.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | macro_rules! debug {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MergerImpl`
[INFO] [stdout]   --> contest/src/macros.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 | macro_rules! MergerImpl {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `AddImpl`
[INFO] [stdout]   --> contest/src/macros.rs:86:14
[INFO] [stdout]    |
[INFO] [stdout] 86 | macro_rules! AddImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `SubImpl`
[INFO] [stdout]   --> contest/src/macros.rs:99:14
[INFO] [stdout]    |
[INFO] [stdout] 99 | macro_rules! SubImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 | macro_rules! DivImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 | macro_rules! MulImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MergerImpl`
[INFO] [stdout]    --> contest/src/macros.rs:168:16
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub (crate)use MergerImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddImpl`
[INFO] [stdout]    --> contest/src/macros.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub (crate)use AddImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubImpl`
[INFO] [stdout]    --> contest/src/macros.rs:172:16
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub (crate)use SubImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:174:16
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub (crate)use MulImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub (crate)use DivImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panic`
[INFO] [stdout]  --> contest/src/solver.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{Write, BufRead}, panic};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, and `Sub`
[INFO] [stdout]  --> contest/src/solver.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Add, Sub, Mul, Div};
[INFO] [stdout]   |                ^^^  ^^^  ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `poly::Poly`
[INFO] [stdout]  --> contest/src/solver.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::From...
[INFO] [stdout]   |                                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::algebraic_structure::*`
[INFO] [stdout]  --> contest/src/solver.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::algebraic_structure::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type mi = StaticModInt<i32, MF998244353>; 
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::swap`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{BufRead, Write}, mem::swap};
[INFO] [stdout]   |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]  --> contest/src/vector_binary_subset_convolution.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 |     vector_binary_convolution::FWTLayer, num_integer::Integer
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `float` should have an upper camel case name
[INFO] [stdout]   --> contest/src/num_float.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct float(f64);
[INFO] [stdout]    |            ^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Float`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]  --> contest/src/binary_lifting_compress_on_tree.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{algebraic_structure::Monoid, macros::{should_eq, debug}, arithmetic::{IdentityAdd, Nil}};
[INFO] [stdout]   |                                                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ops::Add`
[INFO] [stdout]  --> contest/src/persistent_segtree.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add};
[INFO] [stdout]   |                       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Ordering`
[INFO] [stdout]  --> contest/src/lichao_segtree.rs:1:17
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::{Ordering, max}, mem::swap};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:76:9
[INFO] [stdout]    |
[INFO] [stdout] 76 | /         ///
[INFO] [stdout] 77 | |         ///     a.0 x + a.1 = b.0 x + b.1
[INFO] [stdout] 78 | |         /// =>  x = (b.1 - a.1) / (a.0 - b.0)
[INFO] [stdout] 79 | |         ///
[INFO] [stdout]    | |_________--^
[INFO] [stdout]    |           |
[INFO] [stdout]    |           rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `take`
[INFO] [stdout]  --> contest/src/leftist_tree.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::Ordering, mem::{swap, take, replace}};
[INFO] [stdout]   |                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `argmax_by` and `num_number::Number`
[INFO] [stdout]  --> contest/src/tree_diameter.rs:1:102
[INFO] [stdout]   |
[INFO] [stdout] 1 | ...::{tree_depth, tree_depth_weight}, math::{argmax, argmax_by}, num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |                                                      ^^^^^^^^^   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> contest/src/collection.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::HashMap, mem::swap};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `random_permutation`
[INFO] [stdout]  --> contest/src/bipartite_match_kuhn.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 |     shuffle::{random_permutation, shuffle},
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `debug`
[INFO] [stdout]   --> contest/src/macros.rs:44:14
[INFO] [stdout]    |
[INFO] [stdout] 44 | macro_rules! debug {
[INFO] [stdout]    |              ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `debug_discard`
[INFO] [stdout]   --> contest/src/macros.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 | macro_rules! debug_discard {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MergerImpl`
[INFO] [stdout]   --> contest/src/macros.rs:75:14
[INFO] [stdout]    |
[INFO] [stdout] 75 | macro_rules! MergerImpl {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `AddImpl`
[INFO] [stdout]   --> contest/src/macros.rs:86:14
[INFO] [stdout]    |
[INFO] [stdout] 86 | macro_rules! AddImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `SubImpl`
[INFO] [stdout]   --> contest/src/macros.rs:99:14
[INFO] [stdout]    |
[INFO] [stdout] 99 | macro_rules! SubImpl {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:112:14
[INFO] [stdout]     |
[INFO] [stdout] 112 | macro_rules! DivImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:125:14
[INFO] [stdout]     |
[INFO] [stdout] 125 | macro_rules! MulImpl {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MergerImpl`
[INFO] [stdout]    --> contest/src/macros.rs:168:16
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub (crate)use MergerImpl;
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AddImpl`
[INFO] [stdout]    --> contest/src/macros.rs:170:16
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub (crate)use AddImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubImpl`
[INFO] [stdout]    --> contest/src/macros.rs:172:16
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub (crate)use SubImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MulImpl`
[INFO] [stdout]    --> contest/src/macros.rs:174:16
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub (crate)use MulImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DivImpl`
[INFO] [stdout]    --> contest/src/macros.rs:176:16
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub (crate)use DivImpl;
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `panic`
[INFO] [stdout]  --> contest/src/solver.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{Write, BufRead}, panic};
[INFO] [stdout]   |                                 ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Add`, `Div`, `Mul`, and `Sub`
[INFO] [stdout]  --> contest/src/solver.rs:2:16
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::ops::{Add, Sub, Mul, Div};
[INFO] [stdout]   |                ^^^  ^^^  ^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `poly::Poly`
[INFO] [stdout]  --> contest/src/solver.rs:3:62
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{fast_input::FastInput, poly_ntt::ConvolutionNTT, poly::Poly, static_modint::{StaticModInt, MF998244353}, num_number::From...
[INFO] [stdout]   |                                                              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::algebraic_structure::*`
[INFO] [stdout]  --> contest/src/solver.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::algebraic_structure::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `mi` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type mi = StaticModInt<i32, MF998244353>; 
[INFO] [stdout]   |      ^^ help: convert the identifier to upper camel case: `Mi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `conv` should have an upper camel case name
[INFO] [stdout]  --> contest/src/solver.rs:9:6
[INFO] [stdout]   |
[INFO] [stdout] 9 | type conv = ConvolutionNTT<i32, mi>;
[INFO] [stdout]   |      ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Conv`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `mem::swap`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{io::{BufRead, Write}, mem::swap};
[INFO] [stdout]   |                                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]  --> contest/src/vector_binary_subset_convolution.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 |     vector_binary_convolution::FWTLayer, num_integer::Integer
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> contest/src/permutation.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | /             loop {
[INFO] [stdout] 33 | |                 j -= 1;
[INFO] [stdout] 34 | |                 if s[j] < s[i] {
[INFO] [stdout] 35 | |                     swap_element(s, i, j);
[INFO] [stdout] 36 | |                 }
[INFO] [stdout] 37 | |             }
[INFO] [stdout]    | |_____________- any code following this expression is unreachable
[INFO] [stdout] 38 |               s[i + 1..n].reverse();
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> contest/src/permutation.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 32 | /             loop {
[INFO] [stdout] 33 | |                 j -= 1;
[INFO] [stdout] 34 | |                 if s[j] < s[i] {
[INFO] [stdout] 35 | |                     swap_element(s, i, j);
[INFO] [stdout] 36 | |                 }
[INFO] [stdout] 37 | |             }
[INFO] [stdout]    | |_____________- any code following this expression is unreachable
[INFO] [stdout] 38 |               s[i + 1..n].reverse();
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::num_number::{Number, FromNumber};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::Number`
[INFO] [stdout]  --> contest/src/bipartite_maximum_weight_match_km.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/bipartite_minimum_weight_match.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     num_number::{Number, FromNumber}, num_concrete::Concrete,
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_integer_reverse.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::num_number::{FromNumber, Number};
[INFO] [stdout]   |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]   --> contest/src/poly.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     num_integer::Integer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/math.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn inverse_batch<T: Field>(mut data: &[T]) -> Vec<T> {
[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: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn mul(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn add(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn sub(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:228:18
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn div(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:239:27
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]  --> contest/src/fast_input.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{self, BufRead, BufReader, Cursor};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/pollard_rho.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::num_number::{Number, FromNumber};
[INFO] [stdout]   |                         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_number::Number`
[INFO] [stdout]  --> contest/src/bipartite_maximum_weight_match_km.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{num_number::Number, num_concrete::Concrete};
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/bipartite_minimum_weight_match.rs:6:18
[INFO] [stdout]   |
[INFO] [stdout] 6 |     num_number::{Number, FromNumber}, num_concrete::Concrete,
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Number`
[INFO] [stdout]  --> contest/src/num_integer_reverse.rs:2:37
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::num_number::{FromNumber, Number};
[INFO] [stdout]   |                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num_integer::Integer`
[INFO] [stdout]   --> contest/src/poly.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     num_integer::Integer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/pollard_rho.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut c = random(n - T::ONE) + T::ONE;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `t` is never read
[INFO] [stdout]   --> contest/src/pollard_rho.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut t = T::ZERO;
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/math.rs:133:32
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn inverse_batch<T: Field>(mut data: &[T]) -> Vec<T> {
[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: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_fft.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let mut tn = <T as FromNumber>::from(n);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 |     fn mul(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn add(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 220 |     fn sub(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rhs`
[INFO] [stdout]    --> contest/src/arithmetic.rs:228:18
[INFO] [stdout]     |
[INFO] [stdout] 228 |     fn div(self, rhs: Nil) -> Self::Output {
[INFO] [stdout]     |                  ^^^ help: if this is intentional, prefix it with an underscore: `_rhs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |     fn eq(&self, other: &Self) -> bool {
[INFO] [stdout]     |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> contest/src/arithmetic.rs:239:27
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/pollard_rho.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     let mut c = random(n - T::ONE) + T::ONE;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `t` is never read
[INFO] [stdout]   --> contest/src/pollard_rho.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |     let mut t = T::ZERO;
[INFO] [stdout]    |                 ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |             let mut ans = self.exp0((n + 1) / 2);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let mut ln = ans.clone().ln(n);
[INFO] [stdout]     |                 ----^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> contest/src/poly.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let rank = self.rank();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn downgrade_mod(self: Self, mut n: impl Iterator<Item = usize>) -> Self {
[INFO] [stdout]     |                                      ----^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:225:43
[INFO] [stdout]     |
[INFO] [stdout] 225 |     pub fn convolution_delta(mut a: Self, mut b: Self) -> Self {
[INFO] [stdout]     |                                           ----^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut res = C::convolution(a.0, b.0);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_fft.rs:53:13
[INFO] [stdout]    |
[INFO] [stdout] 53 |         let mut tn = <T as FromNumber>::from(n);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:281:22
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn batch_mul(mut polys: &mut [Self]) -> Self {
[INFO] [stdout]     |                      ----^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn into_iter(mut self) -> std::vec::IntoIter<T> {
[INFO] [stdout]     |                  ----^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> contest/src/poly_common.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn poly_modular<T: Ring>(mut p: Vec<T>, len: usize) -> Vec<T> {
[INFO] [stdout]   |                              ----^
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_interpolation.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut res = Self {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:110:17
[INFO] [stdout]     |
[INFO] [stdout] 110 |             let mut ans = self.exp0((n + 1) / 2);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:111:17
[INFO] [stdout]     |
[INFO] [stdout] 111 |             let mut ln = ans.clone().ln(n);
[INFO] [stdout]     |                 ----^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rank`
[INFO] [stdout]    --> contest/src/poly.rs:118:13
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let rank = self.rank();
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_rank`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:138:38
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub fn downgrade_mod(self: Self, mut n: impl Iterator<Item = usize>) -> Self {
[INFO] [stdout]     |                                      ----^
[INFO] [stdout]     |                                      |
[INFO] [stdout]     |                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:225:43
[INFO] [stdout]     |
[INFO] [stdout] 225 |     pub fn convolution_delta(mut a: Self, mut b: Self) -> Self {
[INFO] [stdout]     |                                           ----^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 228 |         let mut res = C::convolution(a.0, b.0);
[INFO] [stdout]     |             ----^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:281:22
[INFO] [stdout]     |
[INFO] [stdout] 281 |     pub fn batch_mul(mut polys: &mut [Self]) -> Self {
[INFO] [stdout]     |                      ----^^^^^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/poly.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 |     fn into_iter(mut self) -> std::vec::IntoIter<T> {
[INFO] [stdout]     |                  ----^^^^
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> contest/src/poly_common.rs:8:30
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn poly_modular<T: Ring>(mut p: Vec<T>, len: usize) -> Vec<T> {
[INFO] [stdout]   |                              ----^
[INFO] [stdout]   |                              |
[INFO] [stdout]   |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/poly_interpolation.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let mut res = Self {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 227 | IntegerImpl!(i8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 228 | IntegerImpl!(u8, i16, u8, i8);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 229 | IntegerImpl!(i16, i32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 230 | IntegerImpl!(u16, u32, u16, i16);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 231 | IntegerImpl!(i32, i64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 232 | IntegerImpl!(u32, u64, u32, i32);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 233 | IntegerImpl!(isize, isize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 234 | IntegerImpl!(usize, usize, usize, isize);
[INFO] [stdout]     | ---------------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 235 | IntegerImpl!(i64, i128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 236 | IntegerImpl!(u64, u128, u64, i64);
[INFO] [stdout]     | --------------------------------- in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 237 | IntegerImpl!(i128, i128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] help: `x` is captured in macro and introduced a unused variable
[INFO] [stdout]    --> contest/src/num_integer.rs:150:21
[INFO] [stdout]     |
[INFO] [stdout] 150 |                 let x = 0;
[INFO] [stdout]     |                     ^
[INFO] [stdout] ...
[INFO] [stdout] 238 | IntegerImpl!(u128, u128, u128, i128);
[INFO] [stdout]     | ------------------------------------ in this macro invocation
[INFO] [stdout]     = note: this warning originates in the macro `IntegerImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |             |i, a, b| b - a >= k,
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/treap.rs:137:30
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn modify(&mut self, mut id: usize, upd: U) {
[INFO] [stdout]     |                              ----^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_tree.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         for i in 0..level {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/link_cut_tree.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn init(&mut self, mut id: usize) {
[INFO] [stdout]     |                            ----^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_kth_smallest_persistent_segtree.rs:65:14
[INFO] [stdout]    |
[INFO] [stdout] 65 |             |i, a, b| b - a >= k,
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/treap.rs:137:30
[INFO] [stdout]     |
[INFO] [stdout] 137 |     pub fn modify(&mut self, mut id: usize, upd: U) {
[INFO] [stdout]     |                              ----^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> contest/src/range_tree.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         for i in 0..level {
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/link_cut_tree.rs:122:28
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn init(&mut self, mut id: usize) {
[INFO] [stdout]     |                            ----^^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> contest/src/cost_flow_augment_dijkstra.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let n = self.g.len();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/general_graph_match.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn mate(&self, mut i: usize) -> Option<usize> {
[INFO] [stdout]     |                        ----^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let mut x = queue[qs];
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:67:21
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y];
[INFO] [stdout]    |                     ----^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut pre_x = y_pre[end_y];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut pre_y = row.left_mate[pre_x];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/solver.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_id`
[INFO] [stdout]   --> contest/src/solver.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub unsafe fn solve_one<I: BufRead>(test_id: usize, fi: &mut FastInput<I>, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fi`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                ^^ help: if this is intentional, prefix it with an underscore: `_fi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:57
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> contest/src/vector_matrix.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let k = lhs.m;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> contest/src/cost_flow_augment_dijkstra.rs:65:13
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let n = self.g.len();
[INFO] [stdout]    |             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/general_graph_match.rs:139:24
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn mate(&self, mut i: usize) -> Option<usize> {
[INFO] [stdout]     |                        ----^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `mod2` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | static mod2: i64 = M0 * M1;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 28 - static mod2: i64 = M0 * M1;
[INFO] [stdout] 28 + static MOD2: i64 = M0 * M1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static inv10: i64 = 208783132;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV10`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:60:17
[INFO] [stdout]    |
[INFO] [stdout] 60 |             let mut x = queue[qs];
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:67:21
[INFO] [stdout]    |
[INFO] [stdout] 67 |                 let mut tmp = row.left_label[x] + row.right_label[y] - row.table[x][y];
[INFO] [stdout]    |                     ----^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:123:13
[INFO] [stdout]     |
[INFO] [stdout] 123 |         let mut pre_x = y_pre[end_y];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> contest/src/bipartite_maximum_weight_match_km.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let mut pre_y = row.left_mate[pre_x];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | static inv01: i64 = 554580198;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV01`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv012` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | static inv012: i64 = 29562547;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 31 - static inv012: i64 = 29562547;
[INFO] [stdout] 31 + static INV012: i64 = 29562547;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p1inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | static p1inv10: i64 = 208416582520653596;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 32 - static p1inv10: i64 = 208416582520653596;
[INFO] [stdout] 32 + static P1INV10: i64 = 208416582520653596;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p0inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | static p0inv01: i64 = 260520730147305702;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 33 - static p0inv01: i64 = 260520730147305702;
[INFO] [stdout] 33 + static P0INV01: i64 = 260520730147305702;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let C = Self::inverse_internal(p.split_at(prev_mod).0);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let C = poly_extend(C, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let A = p.to_owned();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let A = poly_extend(A, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AC` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut AC = poly_extend(Self::convolution(A, C.clone()), m);
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `ac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/macros.rs:67:13
[INFO] [stdout]    |
[INFO] [stdout] 67 |           let mut $var $(: $t)? = $fi.read();
[INFO] [stdout]    |               ----^^^^
[INFO] [stdout]    |               |
[INFO] [stdout]    |               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]   ::: contest/src/solver.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | /     input!{
[INFO] [stdout] 12 | |         fi,
[INFO] [stdout] 13 | |         d: usize,
[INFO] [stdout] 14 | |         k: u64,
[INFO] [stdout] 15 | |     }
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `input` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> contest/src/solver.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut c = c.iter().rev().map(|x| mi::zero() - *x).collect();
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test_id`
[INFO] [stdout]   --> contest/src/solver.rs:10:37
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub unsafe fn solve_one<I: BufRead>(test_id: usize, fi: &mut FastInput<I>, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_test_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/rand.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |     static mut singleton: Option<Rng> = None;
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 51 -     static mut singleton: Option<Rng> = None;
[INFO] [stdout] 51 +     static mut SINGLETON: Option<Rng> = None;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/rand.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &mut singleton {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &raw mut singleton {
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fi`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                ^^ help: if this is intentional, prefix it with an underscore: `_fi`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]  --> contest/src/stress_external_member.rs:6:57
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub unsafe fn brute_force<InT>(fi: &mut FastInput<InT>, fo: &mut impl Write)
[INFO] [stdout]   |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fo`
[INFO] [stdout]   --> contest/src/stress_external_member.rs:12:37
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn generate_test(rng: &mut Rng, fo: &mut impl Write) {
[INFO] [stdout]    |                                     ^^ help: if this is intentional, prefix it with an underscore: `_fo`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `phi` should have an upper case name
[INFO] [stdout]   --> contest/src/enumerate_prime.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     static phi: [usize; 10] = [
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 46 -     static phi: [usize; 10] = [
[INFO] [stdout] 46 +     static PHI: [usize; 10] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `k`
[INFO] [stdout]   --> contest/src/vector_matrix.rs:71:9
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let k = lhs.m;
[INFO] [stdout]    |         ^ help: if this is intentional, prefix it with an underscore: `_k`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |             mem::transmute(self.0)
[INFO] [stdout]     |             --------------^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: replace this with: `f64::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:262:30
[INFO] [stdout]     |
[INFO] [stdout] 262 |     let bits: u64 = unsafe { mem::transmute(val) };
[INFO] [stdout]     |                              --------------^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: replace this with: `f64::to_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:43
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                           ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:53
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:42
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:52
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:39
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:49
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:52
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:62
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:39
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:49
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:52
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:62
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:39
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:49
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:52
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:62
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:40
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:50
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:40
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:50
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:42
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:52
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:26
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:48
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                              ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:22
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:31
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                               ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |         R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `leftSubset` should have a snake case name
[INFO] [stdout]   --> contest/src/maximum_independent_set.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let leftSubset = subsets[(mask & (!nearby[i])) as usize];
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut S = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut T = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `mod2` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | static mod2: i64 = M0 * M1;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 28 - static mod2: i64 = M0 * M1;
[INFO] [stdout] 28 + static MOD2: i64 = M0 * M1;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> contest/src/solver.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     writeln!(fo, "{}", kth);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let _ = writeln!(fo, "{}", kth);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | static inv10: i64 = 208783132;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV10`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/vector_binary_subset_convolution.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut T = vec![zero; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | static inv01: i64 = 554580198;
[INFO] [stdout]    |        ^^^^^ help: convert the identifier to upper case: `INV01`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `inv012` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | static inv012: i64 = 29562547;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 31 - static inv012: i64 = 29562547;
[INFO] [stdout] 31 + static INV012: i64 = 29562547;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p1inv10` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | static p1inv10: i64 = 208416582520653596;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 32 - static p1inv10: i64 = 208416582520653596;
[INFO] [stdout] 32 + static P1INV10: i64 = 208416582520653596;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `p0inv01` should have an upper case name
[INFO] [stdout]   --> contest/src/poly_mtt.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | static p0inv01: i64 = 260520730147305702;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 33 - static p0inv01: i64 = 260520730147305702;
[INFO] [stdout] 33 + static P0INV01: i64 = 260520730147305702;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |         let C = Self::inverse_internal(p.split_at(prev_mod).0);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `C` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let C = poly_extend(C, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:40:13
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let A = p.to_owned();
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `A` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:41:13
[INFO] [stdout]    |
[INFO] [stdout] 41 |         let A = poly_extend(A, proper_len);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `AC` should have a snake case name
[INFO] [stdout]   --> contest/src/poly.rs:43:17
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let mut AC = poly_extend(Self::convolution(A, C.clone()), m);
[INFO] [stdout]    |                 ^^ help: convert the identifier to snake case: `ac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/rand.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 |     static mut singleton: Option<Rng> = None;
[INFO] [stdout]    |                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 51 -     static mut singleton: Option<Rng> = None;
[INFO] [stdout] 51 +     static mut SINGLETON: Option<Rng> = None;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/rand.rs:53:15
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &mut singleton {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 53 |         match &raw mut singleton {
[INFO] [stdout]    |                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 96 | DynamicModulusFactoryImpl!(MF32, u32);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `singleton` should have an upper case name
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:84:28
[INFO] [stdout]    |
[INFO] [stdout] 84 |                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 84 -                 static mut singleton: Modulus<$T> = Modulus {
[INFO] [stdout] 84 +                 static mut SINGLETON: Modulus<$T> = Modulus {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> contest/src/dynamic_modint.rs:90:31
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { &mut singleton }
[INFO] [stdout]    |                               ^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout] ...
[INFO] [stdout] 97 | DynamicModulusFactoryImpl!(MF64, u64);
[INFO] [stdout]    | ------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: this warning originates in the macro `DynamicModulusFactoryImpl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `phi` should have an upper case name
[INFO] [stdout]   --> contest/src/enumerate_prime.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     static phi: [usize; 10] = [
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 46 -     static phi: [usize; 10] = [
[INFO] [stdout] 46 +     static PHI: [usize; 10] = [
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |             mem::transmute(self.0)
[INFO] [stdout]     |             --------------^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: replace this with: `f64::to_bits`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> contest/src/num_float.rs:262:30
[INFO] [stdout]     |
[INFO] [stdout] 262 |     let bits: u64 = unsafe { mem::transmute(val) };
[INFO] [stdout]     |                              --------------^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: replace this with: `f64::to_bits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:16
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree.rs:68:26
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn new(L: usize, R: usize, f: impl Fn(usize) -> S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:43
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                           ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:106:53
[INFO] [stdout]     |
[INFO] [stdout] 106 |     fn update_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize, u: U) {
[INFO] [stdout]     |                                                     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:42
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree.rs:121:52
[INFO] [stdout]     |
[INFO] [stdout] 121 |     fn query_rec(&mut self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/segtree_beat_ext.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:39
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:200:49
[INFO] [stdout]     |
[INFO] [stdout] 200 |     pub fn query_sum(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:52
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:204:62
[INFO] [stdout]     |
[INFO] [stdout] 204 |     fn query_sum_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:39
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:217:49
[INFO] [stdout]     |
[INFO] [stdout] 217 |     pub fn query_max(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:52
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:221:62
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn query_max_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:39
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                       ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:235:49
[INFO] [stdout]     |
[INFO] [stdout] 235 |     pub fn query_min(self: &mut Self, L: usize, R: usize) -> T {
[INFO] [stdout]     |                                                 ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:52
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:239:62
[INFO] [stdout]     |
[INFO] [stdout] 239 |     fn query_min_rec(self: &mut Self, root: usize, L: usize, R: usize, l: usize, r: usize) -> T {
[INFO] [stdout]     |                                                              ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:40
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:253:50
[INFO] [stdout]     |
[INFO] [stdout] 253 |     pub fn update_min(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:261:9
[INFO] [stdout]     |
[INFO] [stdout] 261 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 262 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:40
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                        ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:286:50
[INFO] [stdout]     |
[INFO] [stdout] 286 |     pub fn update_max(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                  ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:294:9
[INFO] [stdout]     |
[INFO] [stdout] 294 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:295:9
[INFO] [stdout]     |
[INFO] [stdout] 295 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:42
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                          ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:319:52
[INFO] [stdout]     |
[INFO] [stdout] 319 |     pub fn update_value(self: &mut Self, L: usize, R: usize, u: T) {
[INFO] [stdout]     |                                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:327:9
[INFO] [stdout]     |
[INFO] [stdout] 327 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/segtree_beat_ext.rs:328:9
[INFO] [stdout]     |
[INFO] [stdout] 328 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |     pub L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 |     pub R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     L: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     R: usize,
[INFO] [stdout]    |     ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:16
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/persistent_segtree.rs:56:26
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn new(L: usize, R: usize, nil_sum: S) -> Self {
[INFO] [stdout]    |                          ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:110:48
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn query_rec(&self, root: usize, L: usize, R: usize, l: usize, r: usize) -> S {
[INFO] [stdout]     |                                                ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:249:9
[INFO] [stdout]     |
[INFO] [stdout] 249 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:250:9
[INFO] [stdout]     |
[INFO] [stdout] 250 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:283:9
[INFO] [stdout]     |
[INFO] [stdout] 283 |         L: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]    --> contest/src/persistent_segtree.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |         R: usize,
[INFO] [stdout]     |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                              ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:84:36
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn insert(&mut self, L: T, R: T, a: T, b: T) {
[INFO] [stdout]    |                                    ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:85:13
[INFO] [stdout]    |
[INFO] [stdout] 85 |         let L = first_true(0, self.1.len() - 1, |&x| self.1[x] >= L);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:86:13
[INFO] [stdout]    |
[INFO] [stdout] 86 |         let R = last_true(0, self.1.len() - 1, |&x| self.1[x] <= R);
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:22
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                      ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:87:31
[INFO] [stdout]    |
[INFO] [stdout] 87 |         if let (Some(L), Some(R)) = (L, R) {
[INFO] [stdout]    |                               ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `L` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |         L: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `l`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `R` should have a snake case name
[INFO] [stdout]   --> contest/src/lichao_segtree.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 96 |         R: usize,
[INFO] [stdout]    |         ^ help: convert the identifier to snake case: `r`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `leftSubset` should have a snake case name
[INFO] [stdout]   --> contest/src/maximum_independent_set.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let leftSubset = subsets[(mask & (!nearby[i])) as usize];
[INFO] [stdout]    |             ^^^^^^^^^^ help: convert the identifier to snake case: `left_subset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `S` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |     let mut S = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case (notice the capitalization): `s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/bipartite_maximum_weight_match_km.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let mut T = vec![false; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> contest/src/solver.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     writeln!(fo, "{}", kth);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let _ = writeln!(fo, "{}", kth);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `T` should have a snake case name
[INFO] [stdout]   --> contest/src/vector_binary_subset_convolution.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut T = vec![zero; n];
[INFO] [stdout]    |             ^ help: convert the identifier to snake case: `t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stress::stress`
[INFO] [stdout]  --> contest/src/main.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use contest::{solver::solve_multi, stress::stress};
[INFO] [stdout]   |                                    ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_in_new_thread` is never used
[INFO] [stdout]   --> contest/src/main.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | unsafe fn run_in_new_thread() {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `stress::stress`
[INFO] [stdout]  --> contest/src/main.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use contest::{solver::solve_multi, stress::stress};
[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 `Result` that must be used
[INFO] [stdout]   --> contest/src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | /     thread::Builder::new()
[INFO] [stdout] 17 | |     .stack_size(256 << 20)
[INFO] [stdout] 18 | |     .spawn(|| {run_in_current_thread();})
[INFO] [stdout] 19 | |     .unwrap()
[INFO] [stdout] 20 | |     .join();
[INFO] [stdout]    | |___________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let _ = thread::Builder::new()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_in_new_thread` is never used
[INFO] [stdout]   --> contest/src/main.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | unsafe fn run_in_new_thread() {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> contest/src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | /     thread::Builder::new()
[INFO] [stdout] 17 | |     .stack_size(256 << 20)
[INFO] [stdout] 18 | |     .spawn(|| {run_in_current_thread();})
[INFO] [stdout] 19 | |     .unwrap()
[INFO] [stdout] 20 | |     .join();
[INFO] [stdout]    | |___________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let _ = thread::Builder::new()
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.31s
[INFO] running `Command { std: "docker" "inspect" "4a1444c60f89e3e0b10a7bfde7cf3394c779600af9c40b06adfa8a1460c838b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a1444c60f89e3e0b10a7bfde7cf3394c779600af9c40b06adfa8a1460c838b4", kill_on_drop: false }`
[INFO] [stdout] 4a1444c60f89e3e0b10a7bfde7cf3394c779600af9c40b06adfa8a1460c838b4
