[INFO] fetching crate colorizex 0.1.3... [INFO] testing colorizex-0.1.3 against beta-2021-01-01 for beta-1.50-1 [INFO] extracting crate colorizex 0.1.3 into /workspace/builds/worker-14/source [INFO] validating manifest of crates.io crate colorizex 0.1.3 on toolchain beta-2021-01-01 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-01-01" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate colorizex 0.1.3 [INFO] finished tweaking crates.io crate colorizex 0.1.3 [INFO] tweaked toml for crates.io crate colorizex 0.1.3 written to /workspace/builds/worker-14/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-01-01" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-01-01" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-01-01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 3db6f763fd328b2000821b532aa679fee4109dd08d1406aa13323329a73c108d [INFO] running `Command { std: "docker" "start" "-a" "3db6f763fd328b2000821b532aa679fee4109dd08d1406aa13323329a73c108d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3db6f763fd328b2000821b532aa679fee4109dd08d1406aa13323329a73c108d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3db6f763fd328b2000821b532aa679fee4109dd08d1406aa13323329a73c108d", kill_on_drop: false }` [INFO] [stdout] 3db6f763fd328b2000821b532aa679fee4109dd08d1406aa13323329a73c108d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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=warn" "-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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-01-01" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 64286517ee116410346e474044a1f2ad3cf37655fdc549cfef6e171a1c4bc2ac [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "64286517ee116410346e474044a1f2ad3cf37655fdc549cfef6e171a1c4bc2ac", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling backtrace v0.3.55 [INFO] [stderr] Compiling colored v1.9.3 [INFO] [stderr] Compiling failure_derive v0.1.8 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling structopt-derive v0.4.14 [INFO] [stderr] Compiling failure v0.1.8 [INFO] [stderr] Compiling structopt v0.3.21 [INFO] [stderr] Compiling colorizex v0.1.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/main.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 17.13s [INFO] running `Command { std: "docker" "inspect" "64286517ee116410346e474044a1f2ad3cf37655fdc549cfef6e171a1c4bc2ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "64286517ee116410346e474044a1f2ad3cf37655fdc549cfef6e171a1c4bc2ac", kill_on_drop: false }` [INFO] [stdout] 64286517ee116410346e474044a1f2ad3cf37655fdc549cfef6e171a1c4bc2ac [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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=warn" "-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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-01-01" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 267cd4d4822ed42d872072e24502221cb26efaa7cdad3a9d964b5ea86bb582f1 [INFO] running `Command { std: "docker" "start" "-a" "267cd4d4822ed42d872072e24502221cb26efaa7cdad3a9d964b5ea86bb582f1", kill_on_drop: false }` [INFO] [stderr] Compiling env_logger v0.8.2 [INFO] [stderr] Compiling colorizex v0.1.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused `#[macro_use]` import [INFO] [stdout] --> src/main.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | #[macro_use] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 4.33s [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "267cd4d4822ed42d872072e24502221cb26efaa7cdad3a9d964b5ea86bb582f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "267cd4d4822ed42d872072e24502221cb26efaa7cdad3a9d964b5ea86bb582f1", kill_on_drop: false }` [INFO] [stdout] 267cd4d4822ed42d872072e24502221cb26efaa7cdad3a9d964b5ea86bb582f1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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=warn" "-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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2021-01-01" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 74c348095b4454fde19c680197f244cc79a5a8483c7d96550763f3a7563f10cb [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "74c348095b4454fde19c680197f244cc79a5a8483c7d96550763f3a7563f10cb", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.05s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/colorizex-994404ddc3235a06 [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_colorize ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- test_colorize stdout ---- [INFO] [stdout] thread 'test_colorize' panicked at 'assertion failed: `(left == right)` [INFO] [stdout] left: `"NB"`, [INFO] [stdout] right: `"\u{1b}[31mNB\u{1b}[0m"`', src/main.rs:46:5 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x56553e8d69b7 - std::backtrace_rs::backtrace::libunwind::trace::hcd6e187547b8deec [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5 [INFO] [stdout] 1: 0x56553e8d69b7 - std::backtrace_rs::backtrace::trace_unsynchronized::hde10036eb783fbc7 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x56553e8d69b7 - std::sys_common::backtrace::_print_fmt::h63987b8f86dfc82a [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/sys_common/backtrace.rs:67:5 [INFO] [stdout] 3: 0x56553e8d69b7 - ::fmt::hc33f3ac4cc9c4196 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/sys_common/backtrace.rs:46:22 [INFO] [stdout] 4: 0x56553e8f771c - core::fmt::write::hfdcdeb08fb2b3afa [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/core/src/fmt/mod.rs:1078:17 [INFO] [stdout] 5: 0x56553e8d2cf2 - std::io::Write::write_fmt::h28c53dc51251a293 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/io/mod.rs:1519:15 [INFO] [stdout] 6: 0x56553e8d8c85 - std::sys_common::backtrace::_print::hf179508b01f66878 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/sys_common/backtrace.rs:49:5 [INFO] [stdout] 7: 0x56553e8d8c85 - std::sys_common::backtrace::print::ha97d11adb39266a6 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/sys_common/backtrace.rs:36:9 [INFO] [stdout] 8: 0x56553e8d8c85 - std::panicking::default_hook::{{closure}}::h8da9985a98bd1582 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:208:50 [INFO] [stdout] 9: 0x56553e8d8812 - std::panicking::default_hook::hbc0ee792993c2ef2 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:222:9 [INFO] [stdout] 10: 0x56553e8d9421 - std::panicking::rust_panic_with_hook::h9fb9cda33a10f084 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:591:17 [INFO] [stdout] 11: 0x56553e8d8f67 - std::panicking::begin_panic_handler::{{closure}}::hf3e83396e085962e [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:497:13 [INFO] [stdout] 12: 0x56553e8d6e7c - std::sys_common::backtrace::__rust_end_short_backtrace::hac151ac4c1e3252d [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/sys_common/backtrace.rs:141:18 [INFO] [stdout] 13: 0x56553e8d8ec9 - rust_begin_unwind [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:493:5 [INFO] [stdout] 14: 0x56553e8f60d1 - core::panicking::panic_fmt::hf6d8a92b065b8f97 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/core/src/panicking.rs:92:14 [INFO] [stdout] 15: 0x56553e5ebec4 - colorizex::test_colorize::he0d84dd83022203f [INFO] [stdout] at /opt/rustwide/workdir/src/main.rs:46:5 [INFO] [stdout] 16: 0x56553e5ebbda - colorizex::test_colorize::{{closure}}::h079db0569b537861 [INFO] [stdout] at /opt/rustwide/workdir/src/main.rs:41:1 [INFO] [stdout] 17: 0x56553e5eb2de - core::ops::function::FnOnce::call_once::h55ef6230d18e641b [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 18: 0x56553e6166c3 - core::ops::function::FnOnce::call_once::ha61d5393ae51ae22 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 19: 0x56553e6166c3 - test::__rust_begin_short_backtrace::h4a8691b5281c1f3b [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/test/src/lib.rs:516:5 [INFO] [stdout] 20: 0x56553e614fb6 - as core::ops::function::FnOnce>::call_once::hd25ba61494055ad3 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/alloc/src/boxed.rs:1328:9 [INFO] [stdout] 21: 0x56553e614fb6 - as core::ops::function::FnOnce<()>>::call_once::h052fde7b846767ba [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panic.rs:322:9 [INFO] [stdout] 22: 0x56553e614fb6 - std::panicking::try::do_call::h04571a1da6838ba1 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:379:40 [INFO] [stdout] 23: 0x56553e614fb6 - std::panicking::try::h758f090614125cbe [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:343:19 [INFO] [stdout] 24: 0x56553e614fb6 - std::panic::catch_unwind::h0c48513d5a021d3c [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panic.rs:396:14 [INFO] [stdout] 25: 0x56553e614fb6 - test::run_test_in_process::hee75babaaac3822f [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/test/src/lib.rs:538:18 [INFO] [stdout] 26: 0x56553e614fb6 - test::run_test::run_test_inner::{{closure}}::h2920dea75d7f0c1e [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/test/src/lib.rs:449:39 [INFO] [stdout] 27: 0x56553e5ed2c6 - std::sys_common::backtrace::__rust_begin_short_backtrace::ha23dff608830db13 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/sys_common/backtrace.rs:125:18 [INFO] [stdout] 28: 0x56553e5f205d - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::hacce322dead3a799 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/thread/mod.rs:474:17 [INFO] [stdout] 29: 0x56553e5f205d - as core::ops::function::FnOnce<()>>::call_once::h4f0bc9c26ead0a27 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panic.rs:322:9 [INFO] [stdout] 30: 0x56553e5f205d - std::panicking::try::do_call::h1b9f282fb0c383b3 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:379:40 [INFO] [stdout] 31: 0x56553e5f205d - std::panicking::try::hed1ebed51b133ee4 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panicking.rs:343:19 [INFO] [stdout] 32: 0x56553e5f205d - std::panic::catch_unwind::h072a2b19fd39a474 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/panic.rs:396:14 [INFO] [stdout] 33: 0x56553e5f205d - std::thread::Builder::spawn_unchecked::{{closure}}::hb02c6b2d3ff18bc2 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/thread/mod.rs:473:30 [INFO] [stdout] 34: 0x56553e5f205d - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb512c5d27b4adb83 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 35: 0x56553e8df36a - as core::ops::function::FnOnce>::call_once::hdbb9ff71143eaad6 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/alloc/src/boxed.rs:1328:9 [INFO] [stdout] 36: 0x56553e8df36a - as core::ops::function::FnOnce>::call_once::h9dbde95cefb8368c [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/alloc/src/boxed.rs:1328:9 [INFO] [stdout] 37: 0x56553e8df36a - std::sys::unix::thread::Thread::new::thread_start::hc76032c38affd972 [INFO] [stdout] at /rustc/25b3db3aa752d9d4633c983c9d4bf5e48f9baff1/library/std/src/sys/unix/thread.rs:71:17 [INFO] [stdout] 38: 0x7f5d57874609 - start_thread [INFO] [stdout] 39: 0x7f5d57aff293 - clone [INFO] [stdout] 40: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] test_colorize [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--bin colorizex' [INFO] running `Command { std: "docker" "inspect" "74c348095b4454fde19c680197f244cc79a5a8483c7d96550763f3a7563f10cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "74c348095b4454fde19c680197f244cc79a5a8483c7d96550763f3a7563f10cb", kill_on_drop: false }` [INFO] [stdout] 74c348095b4454fde19c680197f244cc79a5a8483c7d96550763f3a7563f10cb