2026-05-25 01:21:13,288: INFO: Building opensdn-external-zookeeper 2026-05-25 01:21:13,624: INFO: Building args: --network host --build-arg PIP_REPOSITORY=http://localhost:6667/pip/simple --build-arg CONTRAIL_REGISTRY=nexus.gz1.opensdn.io:5102 --build-arg CONTRAIL_CONTAINER_TAG=nightly --build-arg SITE_MIRROR=http://nexus.gz1.opensdn.io/repository/external-web-cache --build-arg LINUX_DISTR_VER=9 --build-arg LINUX_DISTR=rockylinux --build-arg CONTAINER_NAME=opensdn-external-zookeeper --build-arg UBUNTU_DISTR_VERSION=24.04 --build-arg UBUNTU_DISTR=ubuntu --build-arg VENDOR_NAME=OpenSDN-IO --build-arg VENDOR_DOMAIN=io.opensdn --build-arg BUILD_IMAGE=tf-dev-sandbox:compile --build-arg BUILD_ROOT=/buildroot --build-arg DEBUGINFO_ROOT=/debuginfo #0 building with "default" instance using docker driver #1 [internal] load build definition from Dockerfile #1 transferring dockerfile: #1 transferring dockerfile: 1.76kB done #1 DONE 0.6s #2 [internal] load metadata for docker.io/library/zookeeper:3.7.1 #2 DONE 1.8s #3 [internal] load .dockerignore #3 transferring context: #3 transferring context: 2B 0.0s done #3 DONE 0.6s #4 [internal] load build context #4 DONE 0.0s #5 [1/5] FROM docker.io/library/zookeeper:3.7.1@sha256:dd834732be44c365f5fdb40a10144abdf73608aa5d0831cf160dbc17ccf5bfd0 #5 resolve docker.io/library/zookeeper:3.7.1@sha256:dd834732be44c365f5fdb40a10144abdf73608aa5d0831cf160dbc17ccf5bfd0 #5 resolve docker.io/library/zookeeper:3.7.1@sha256:dd834732be44c365f5fdb40a10144abdf73608aa5d0831cf160dbc17ccf5bfd0 0.7s done #5 sha256:dd834732be44c365f5fdb40a10144abdf73608aa5d0831cf160dbc17ccf5bfd0 549B / 549B done #5 sha256:6de7c18c1c851a6ef84a18a909b9f1c919341309abbb58402d493ae621e5ae98 2.00kB / 2.00kB done #5 ... #4 [internal] load build context #4 transferring context: 50.59kB 0.1s done #4 DONE 0.8s #5 [1/5] FROM docker.io/library/zookeeper:3.7.1@sha256:dd834732be44c365f5fdb40a10144abdf73608aa5d0831cf160dbc17ccf5bfd0 #5 sha256:2665a3b2800b1c80f034cdc18e2a54d5cbfb6ab3490767db777aee55480b0554 10.76kB / 10.76kB done #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 1.05MB / 31.37MB 10.0s #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 4.19MB / 31.37MB 10.2s #5 sha256:a2f2f93da48276873890ac821b3c991d53a7e864791aaf82c39b7863c908b93b 1.05MB / 1.58MB 10.2s #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 6.29MB / 31.37MB 10.5s #5 sha256:a2f2f93da48276873890ac821b3c991d53a7e864791aaf82c39b7863c908b93b 1.58MB / 1.58MB 10.3s done #5 sha256:12cca292b13cb58fadde25af113ddc4ac3b0c5e39ab3f1290a6ba62ec8237afd 212B / 212B 10.4s done #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 0B / 46.04MB 10.5s #5 sha256:c7b4dda8479e888be1d6eb23f126fe3c1f9cf630b59b59f375ff6e89d767346b 1.87kB / 1.87kB 10.5s done #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 12.58MB / 31.37MB 10.8s #5 sha256:81afe63ee276a464fb5e0e9cbee50ff98df4c4e0c0dde7ab132229ccf41dca9b 1.42MB / 5.80MB 10.8s #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 4.19MB / 46.04MB 10.9s #5 sha256:81afe63ee276a464fb5e0e9cbee50ff98df4c4e0c0dde7ab132229ccf41dca9b 2.10MB / 5.80MB 10.9s #5 sha256:81afe63ee276a464fb5e0e9cbee50ff98df4c4e0c0dde7ab132229ccf41dca9b 3.15MB / 5.80MB 11.0s #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 17.83MB / 31.37MB 11.2s #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 8.39MB / 46.04MB 11.2s #5 sha256:81afe63ee276a464fb5e0e9cbee50ff98df4c4e0c0dde7ab132229ccf41dca9b 5.80MB / 5.80MB 11.2s #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 22.55MB / 31.37MB 11.4s #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 13.63MB / 46.04MB 11.4s #5 sha256:81afe63ee276a464fb5e0e9cbee50ff98df4c4e0c0dde7ab132229ccf41dca9b 5.80MB / 5.80MB 11.3s done #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 17.71MB / 46.04MB 11.6s #5 sha256:be281bc29e5d168f4c6d39f4ceda2d0e26ada1953d271be915894c2f7fed5d4c 2.88MB / 12.58MB 11.6s #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 25.17MB / 31.37MB 11.7s #5 sha256:be281bc29e5d168f4c6d39f4ceda2d0e26ada1953d271be915894c2f7fed5d4c 5.24MB / 12.58MB 11.7s #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 29.36MB / 31.37MB 11.9s #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 23.07MB / 46.04MB 11.9s #5 sha256:be281bc29e5d168f4c6d39f4ceda2d0e26ada1953d271be915894c2f7fed5d4c 7.34MB / 12.58MB 11.9s #5 sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 31.37MB / 31.37MB 12.1s done #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 35.65MB / 46.04MB 12.1s #5 sha256:be281bc29e5d168f4c6d39f4ceda2d0e26ada1953d271be915894c2f7fed5d4c 11.53MB / 12.58MB 12.1s #5 sha256:be281bc29e5d168f4c6d39f4ceda2d0e26ada1953d271be915894c2f7fed5d4c 12.58MB / 12.58MB 12.2s #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 39.85MB / 46.04MB 12.3s #5 sha256:be281bc29e5d168f4c6d39f4ceda2d0e26ada1953d271be915894c2f7fed5d4c 12.58MB / 12.58MB 12.2s done #5 extracting sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 0.2s #5 sha256:e26ea21af3b5e7ebee53ca126166eee534a901a0204c61445a755272ff6ed56d 774B / 774B 12.3s done #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 44.04MB / 46.04MB 12.5s #5 sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 46.04MB / 46.04MB 12.8s done #5 extracting sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 5.4s #5 extracting sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 10.4s #5 extracting sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 15.6s #5 extracting sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 21.5s #5 extracting sha256:1efc276f4ff952c055dea726cfc96ec6a4fdb8b62d9eed816bd2b788f2860ad7 22.7s done #5 extracting sha256:a2f2f93da48276873890ac821b3c991d53a7e864791aaf82c39b7863c908b93b #5 extracting sha256:a2f2f93da48276873890ac821b3c991d53a7e864791aaf82c39b7863c908b93b 1.1s done #5 extracting sha256:12cca292b13cb58fadde25af113ddc4ac3b0c5e39ab3f1290a6ba62ec8237afd #5 extracting sha256:12cca292b13cb58fadde25af113ddc4ac3b0c5e39ab3f1290a6ba62ec8237afd done #5 extracting sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 #5 extracting sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 5.1s #5 extracting sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 10.1s #5 extracting sha256:d73cf48caaac2e45ad76a2a9eb3b311d0e4eb1d804e3d2b9cf075a1fa31e6f92 12.7s done #5 extracting sha256:c7b4dda8479e888be1d6eb23f126fe3c1f9cf630b59b59f375ff6e89d767346b #5 extracting sha256:c7b4dda8479e888be1d6eb23f126fe3c1f9cf630b59b59f375ff6e89d767346b done #5 extracting sha256:81afe63ee276a464fb5e0e9cbee50ff98df4c4e0c0dde7ab132229ccf41dca9b #5 extracting sha256:81afe63ee276a464fb5e0e9cbee50ff98df4c4e0c0dde7ab132229ccf41dca9b 0.3s done #5 extracting sha256:be281bc29e5d168f4c6d39f4ceda2d0e26ada1953d271be915894c2f7fed5d4c #5 extracting sha256:be281bc29e5d168f4c6d39f4ceda2d0e26ada1953d271be915894c2f7fed5d4c 1.1s done #5 extracting sha256:e26ea21af3b5e7ebee53ca126166eee534a901a0204c61445a755272ff6ed56d #5 extracting sha256:e26ea21af3b5e7ebee53ca126166eee534a901a0204c61445a755272ff6ed56d done #5 DONE 59.6s #6 [2/5] RUN mkdir /licenses #6 DONE 0.5s #7 [3/5] COPY __licensing.txt /licenses/licensing.txt #7 DONE 0.3s #8 [4/5] COPY *.sh / #8 DONE 0.4s #9 [5/5] RUN /bin/bash -c 'for item in `ls /__*` ; do mv $item /${item:3} ; done' ; export DEBIAN_FRONTEND=noninteractive ; apt-get update || /bin/true ; apt-get -y install python3-minimal ; groupadd --gid 1999 --system contrail ; usermod -a -G 1999 zookeeper ; apt-get clean && rm -rf /var/lib/apt/lists/* #9 0.348 /bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) #9 0.464 Get:1 http://deb.debian.org/debian bullseye InRelease [75.1 kB] #9 0.530 Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [27.2 kB] #9 0.557 Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.0 kB] #9 0.849 Get:4 http://deb.debian.org/debian bullseye/main amd64 Packages [8066 kB] #9 1.278 Get:5 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [457 kB] #9 1.515 Get:6 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [18.8 kB] #9 3.295 Fetched 8688 kB in 3s (2993 kB/s) #9 3.295 Reading package lists... #9 4.206 Reading package lists... #9 5.009 Building dependency tree... #9 5.183 Reading state information... #9 5.394 The following additional packages will be installed: #9 5.394 libexpat1 libmpdec3 libpython3.9-minimal libpython3.9-stdlib media-types #9 5.394 python3.9 python3.9-minimal #9 5.398 Suggested packages: #9 5.398 python3.9-venv python3.9-doc binutils binfmt-support #9 5.472 The following NEW packages will be installed: #9 5.472 libexpat1 libmpdec3 libpython3.9-minimal libpython3.9-stdlib media-types #9 5.472 python3-minimal python3.9 python3.9-minimal #9 5.542 0 upgraded, 8 newly installed, 0 to remove and 63 not upgraded. #9 5.542 Need to get 5159 kB of archives. #9 5.542 After this operation, 20.2 MB of additional disk space will be used. #9 5.542 Get:1 http://deb.debian.org/debian-security bullseye-security/main amd64 libpython3.9-minimal amd64 3.9.2-1+deb11u7 [807 kB] #9 5.676 Get:2 http://deb.debian.org/debian-security bullseye-security/main amd64 libexpat1 amd64 2.2.10-2+deb11u7 [99.2 kB] #9 5.739 Get:3 http://deb.debian.org/debian-security bullseye-security/main amd64 python3.9-minimal amd64 3.9.2-1+deb11u7 [1944 kB] #9 5.769 Get:4 http://deb.debian.org/debian bullseye/main amd64 python3-minimal amd64 3.9.2-3 [38.2 kB] #9 5.769 Get:5 http://deb.debian.org/debian bullseye/main amd64 media-types all 4.0.0 [30.3 kB] #9 5.769 Get:6 http://deb.debian.org/debian bullseye/main amd64 libmpdec3 amd64 2.5.1-1 [87.7 kB] #9 5.769 Get:7 http://deb.debian.org/debian-security bullseye-security/main amd64 libpython3.9-stdlib amd64 3.9.2-1+deb11u7 [1685 kB] #9 5.822 Get:8 http://deb.debian.org/debian-security bullseye-security/main amd64 python3.9 amd64 3.9.2-1+deb11u7 [468 kB] #9 5.904 perl: warning: Setting locale failed. #9 5.904 perl: warning: Please check that your locale settings: #9 5.904 LANGUAGE = "en_US.UTF-8", #9 5.904 LC_ALL = "en_US.UTF-8", #9 5.904 LANG = "en_US.UTF-8" #9 5.904 are supported and installed on your system. #9 5.904 perl: warning: Falling back to the standard locale ("C"). #9 6.138 debconf: delaying package configuration, since apt-utils is not installed #9 6.332 Fetched 5159 kB in 0s (14.8 MB/s) #9 6.377 Selecting previously unselected package libpython3.9-minimal:amd64. #9 6.377 (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 7540 files and directories currently installed.) #9 6.400 Preparing to unpack .../libpython3.9-minimal_3.9.2-1+deb11u7_amd64.deb ... #9 6.416 Unpacking libpython3.9-minimal:amd64 (3.9.2-1+deb11u7) ... #9 6.680 Selecting previously unselected package libexpat1:amd64. #9 6.680 Preparing to unpack .../libexpat1_2.2.10-2+deb11u7_amd64.deb ... #9 6.680 Unpacking libexpat1:amd64 (2.2.10-2+deb11u7) ... #9 6.815 Selecting previously unselected package python3.9-minimal. #9 6.815 Preparing to unpack .../python3.9-minimal_3.9.2-1+deb11u7_amd64.deb ... #9 6.815 Unpacking python3.9-minimal (3.9.2-1+deb11u7) ... #9 7.232 Setting up libpython3.9-minimal:amd64 (3.9.2-1+deb11u7) ... #9 7.252 Setting up libexpat1:amd64 (2.2.10-2+deb11u7) ... #9 7.268 Setting up python3.9-minimal (3.9.2-1+deb11u7) ... #9 8.762 Selecting previously unselected package python3-minimal. #9 8.762 (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 7834 files and directories currently installed.) #9 8.768 Preparing to unpack .../python3-minimal_3.9.2-3_amd64.deb ... #9 8.784 Unpacking python3-minimal (3.9.2-3) ... #9 8.872 Selecting previously unselected package media-types. #9 8.872 Preparing to unpack .../media-types_4.0.0_all.deb ... #9 8.884 Unpacking media-types (4.0.0) ... #9 8.960 Selecting previously unselected package libmpdec3:amd64. #9 8.961 Preparing to unpack .../libmpdec3_2.5.1-1_amd64.deb ... #9 8.965 Unpacking libmpdec3:amd64 (2.5.1-1) ... #9 9.050 Selecting previously unselected package libpython3.9-stdlib:amd64. #9 9.050 Preparing to unpack .../libpython3.9-stdlib_3.9.2-1+deb11u7_amd64.deb ... #9 9.058 Unpacking libpython3.9-stdlib:amd64 (3.9.2-1+deb11u7) ... #9 9.468 Selecting previously unselected package python3.9. #9 9.468 Preparing to unpack .../python3.9_3.9.2-1+deb11u7_amd64.deb ... #9 9.468 Unpacking python3.9 (3.9.2-1+deb11u7) ... #9 9.599 Setting up media-types (4.0.0) ... #9 9.668 Setting up libmpdec3:amd64 (2.5.1-1) ... #9 9.668 Setting up python3-minimal (3.9.2-3) ... #9 10.07 Setting up libpython3.9-stdlib:amd64 (3.9.2-1+deb11u7) ... #9 10.07 Setting up python3.9 (3.9.2-1+deb11u7) ... #9 11.35 Processing triggers for libc-bin (2.31-13+deb11u3) ... #9 DONE 11.6s #10 exporting to image #10 exporting layers #10 exporting layers 0.8s done #10 writing image sha256:331c100186c5561152a53956a6dfef049208c92ccb7f958613c32df5bcc17db5 #10 writing image sha256:331c100186c5561152a53956a6dfef049208c92ccb7f958613c32df5bcc17db5 done #10 naming to nexus.gz1.opensdn.io:5102/opensdn-external-zookeeper:nightly 0.0s done #10 DONE 0.9s 2026-05-25 01:22:31,064: INFO: Docker build duration: 78 seconds The push refers to repository [nexus.gz1.opensdn.io:5102/opensdn-external-zookeeper] fcebfc258db7: Preparing 22146b574403: Preparing 2d01cdb7d064: Preparing 04878c142099: Preparing 9f2f93ce17f4: Preparing 6a8d7aee5ffb: Preparing cb933c7c21f4: Preparing a5b09ba76cd3: Preparing d7802b8508af: Preparing e3abdc2e9252: Preparing eafe6e032dbd: Preparing 92a4e8a3140f: Preparing 04878c142099: Waiting 9f2f93ce17f4: Waiting 6a8d7aee5ffb: Waiting cb933c7c21f4: Waiting a5b09ba76cd3: Waiting d7802b8508af: Waiting e3abdc2e9252: Waiting eafe6e032dbd: Waiting 92a4e8a3140f: Waiting 2d01cdb7d064: Pushed 22146b574403: Pushed 9f2f93ce17f4: Layer already exists 6a8d7aee5ffb: Layer already exists cb933c7c21f4: Layer already exists 04878c142099: Pushed a5b09ba76cd3: Layer already exists d7802b8508af: Layer already exists e3abdc2e9252: Layer already exists eafe6e032dbd: Layer already exists 92a4e8a3140f: Layer already exists fcebfc258db7: Pushed nightly: digest: sha256:377278e396fe41d836a7e8d61a598e062cd78df79a53b8fc708230ab9f60bce1 size: 2833 2026-05-25 01:22:34,744: INFO: Building opensdn-external-zookeeper finished successfully, duration: 81 seconds WARNING: This output is designed for human readability. For machine-readable output, please use --format. IMAGE ID DISK USAGE CONTENT SIZE EXTRA nexus.gz1.opensdn.io:5102/opensdn-analytics-base:nightly 0e7744dbb328 676MB 0B nexus.gz1.opensdn.io:5102/opensdn-analytics-snmp-base:nightly 3e3c032774ec 917MB 0B nexus.gz1.opensdn.io:5102/opensdn-ansible-deployer-src:nightly 5a04d7a24a31 1.41MB 0B nexus.gz1.opensdn.io:5102/opensdn-base:nightly 245d8a71dd53 676MB 0B nexus.gz1.opensdn.io:5102/opensdn-build-manifest-src:nightly 76c5c0bc82eb 4.08kB 0B nexus.gz1.opensdn.io:5102/opensdn-charms-src:nightly eee6351a1b13 6.05MB 0B nexus.gz1.opensdn.io:5102/opensdn-container-builder-src:nightly e21dd60c621d 2.48MB 0B nexus.gz1.opensdn.io:5102/opensdn-controller-config-base:nightly adc8e8e9fcb3 676MB 0B nexus.gz1.opensdn.io:5102/opensdn-controller-control-base:nightly 06a117d9d221 735MB 0B nexus.gz1.opensdn.io:5102/opensdn-external-cassandra:nightly f63c03e61d26 331MB 0B nexus.gz1.opensdn.io:5102/opensdn-external-haproxy:nightly e1a118fc2a59 144MB 0B nexus.gz1.opensdn.io:5102/opensdn-external-kafka:nightly ee4d2554609d 392MB 0B nexus.gz1.opensdn.io:5102/opensdn-external-rabbitmq:nightly ec2b733ab42e 363MB 0B nexus.gz1.opensdn.io:5102/opensdn-external-redis:nightly 2a400fab1f62 171MB 0B nexus.gz1.opensdn.io:5102/opensdn-external-rsyslogd:nightly 7d108513c4f2 440MB 0B nexus.gz1.opensdn.io:5102/opensdn-external-stunnel:nightly 4ef64d701cca 454MB 0B nexus.gz1.opensdn.io:5102/opensdn-external-zookeeper:nightly 331c100186c5 301MB 0B nexus.gz1.opensdn.io:5102/opensdn-general-base:nightly 517d6ae8cf68 428MB 0B nexus.gz1.opensdn.io:5102/opensdn-kolla-ansible-src:nightly 6f2b4e704a19 32.7MB 0B nexus.gz1.opensdn.io:5102/opensdn-vrouter-base:nightly 2ad68acbd73a 743MB 0B nexus.gz1.opensdn.io:5102/tf-dev-sandbox:stable 8e586cc165fc 2.9GB 0B U tf-dev-sandbox:compile 6c1ed5cff279 24.7GB 0B