SPEC CPU(R)2017 Integer Speed Result Fujitsu PRIMERGY RX2540 M7, Intel Xeon Max 9480, 1.90GHz CPU2017 License: 19 Test date: Jun-2023 Test sponsor: Fujitsu Hardware availability: Mar-2023 Tested by: Fujitsu Software availability: Dec-2022 Base Base Base Peak Peak Peak Benchmarks Threads Run Time Ratio Threads Run Time Ratio --------------- ------- --------- --------- ------- --------- --------- 600.perlbench_s 224 204 8.70 S 600.perlbench_s 224 204 8.71 * 600.perlbench_s 224 203 8.75 S 602.gcc_s 224 353 11.3 S 602.gcc_s 224 353 11.3 S 602.gcc_s 224 353 11.3 * 605.mcf_s 224 227 20.8 S 605.mcf_s 224 227 20.8 * 605.mcf_s 224 227 20.8 S 620.omnetpp_s 224 160 10.2 S 620.omnetpp_s 224 159 10.2 * 620.omnetpp_s 224 158 10.3 S 623.xalancbmk_s 224 53.0 26.7 * 623.xalancbmk_s 224 52.9 26.8 S 623.xalancbmk_s 224 53.1 26.7 S 625.x264_s 224 90.1 19.6 S 625.x264_s 224 90.0 19.6 S 625.x264_s 224 90.0 19.6 * 631.deepsjeng_s 224 225 6.37 * 631.deepsjeng_s 224 225 6.37 S 631.deepsjeng_s 224 225 6.37 S 641.leela_s 224 326 5.24 S 641.leela_s 224 326 5.24 * 641.leela_s 224 326 5.24 S 648.exchange2_s 224 128 23.0 S 648.exchange2_s 224 127 23.2 S 648.exchange2_s 224 127 23.2 * 657.xz_s 224 250 24.7 S 657.xz_s 224 251 24.6 S 657.xz_s 224 250 24.7 * ================================================================================= 600.perlbench_s 224 204 8.71 * 602.gcc_s 224 353 11.3 * 605.mcf_s 224 227 20.8 * 620.omnetpp_s 224 159 10.2 * 623.xalancbmk_s 224 53.0 26.7 * 625.x264_s 224 90.0 19.6 * 631.deepsjeng_s 224 225 6.37 * 641.leela_s 224 326 5.24 * 648.exchange2_s 224 127 23.2 * 657.xz_s 224 250 24.7 * SPECspeed(R)2017_int_base 13.6 SPECspeed(R)2017_int_peak Not Run HARDWARE -------- CPU Name: Intel Xeon Max 9480 Max MHz: 3500 Nominal: 1900 Enabled: 112 cores, 2 chips, 2 threads/core Orderable: 1,2 chips Cache L1: 32 KB I + 48 KB D on chip per core L2: 2 MB I+D on chip per core L3: 112.5 MB I+D on chip per chip Other: None Memory: 1152 GB (16 x 64 GB 2Rx4 PC5-4800B-R + 2 x 64 GB HBM) Storage: 1 x SATA SSD, 1.92TB Other: None SOFTWARE -------- OS: SUSE Linux Enterprise Server 15 SP4 5.14.21-150400.22-default Compiler: C/C++: Version 2023.0 of Intel oneAPI DPC++/C++ Compiler for Linux; Fortran: Version 2023.0 of Intel Fortran Compiler for Linux; Parallel: Yes Firmware: Fujitsu BIOS Version V1.0.0.0 R1.10.0 for D3983-A1x. Released Mar-2023 tested as V1.0.0.0 R1.1.0 for D3983-A1x Feb-2023 File System: xfs System State: Run level 3 (multi-user) Base Pointers: 64-bit Peak Pointers: Not Applicable Other: jemalloc memory allocator V5.0.1 Power Management: BIOS set to prefer performance at the cost of additional power usage Compiler Notes -------------- SPEC has ruled that the compiler used for this result was performing a compilation that specifically improves the performance of the 523.xalancbmk_r / 623.xalancbmk_s benchmarks using a priori knowledge of the SPEC code and dataset to perform a transformation that has narrow applicability. In order to encourage optimizations that have wide applicability (see rule 1.4 https://www.spec.org/cpu2017/Docs/runrules.html#rule_1.4), SPEC will no longer publish results using this optimization. This result is left in the SPEC results database for historical reference. Operating System Notes ---------------------- Stack size set to unlimited using "ulimit -s unlimited" Kernel Boot Parameter set with : nohz_full=1-223 Environment Variables Notes --------------------------- Environment variables set by runcpu before the start of the run: KMP_AFFINITY = "granularity=fine,scatter" LD_LIBRARY_PATH = "/home/benchmark/speccpu-1.1.9/lib/intel64:/home/benchmark/speccpu-1.1.9/je5.0.1-64" MALLOC_CONF = "retain:true" OMP_STACKSIZE = "192M" General Notes ------------- Binaries compiled on a system with 2x Intel Xeon Platinum 8280M CPU + 384GB RAM memory using Redhat Enterprise Linux 8.0 Transparent Huge Pages enabled by default Prior to runcpu invocation Filesystem page cache synced and cleared with: sync; echo 3> /proc/sys/vm/drop_caches NA: The test sponsor attests, as of date of publication, that CVE-2017-5754 (Meltdown) is mitigated in the system as tested and documented. Yes: The test sponsor attests, as of date of publication, that CVE-2017-5753 (Spectre variant 1) is mitigated in the system as tested and documented. Yes: The test sponsor attests, as of date of publication, that CVE-2017-5715 (Spectre variant 2) is mitigated in the system as tested and documented. jemalloc, a general purpose malloc implementation built with the RedHat Enterprise 7.5, and the system compiler gcc 4.8.5 sources available from jemalloc.net or https://github.com/jemalloc/jemalloc/releases Platform Notes -------------- BIOS configuration: SNC (Sub NUMA) = Enable SNC4 Sysinfo program /home/benchmark/speccpu-1.1.9/bin/sysinfo Rev: r6732 of 2022-11-07 fe91c89b7ed5c36ae2c92cc097bec197 running on localhost Tue Jun 13 12:01:32 2023 SUT (System Under Test) info as seen by some common utilities. ------------------------------------------------------------ Table of contents ------------------------------------------------------------ 1. uname -a 2. w 3. Username 4. ulimit -a 5. sysinfo process ancestry 6. /proc/cpuinfo 7. lscpu 8. numactl --hardware 9. /proc/meminfo 10. who -r 11. Systemd service manager version: systemd 249 (249.11+suse.124.g2bc0b2c447) 12. Failed units, from systemctl list-units --state=failed 13. Services, from systemctl list-unit-files 14. Linux kernel boot-time arguments, from /proc/cmdline 15. cpupower frequency-info 16. sysctl 17. /sys/kernel/mm/transparent_hugepage 18. /sys/kernel/mm/transparent_hugepage/khugepaged 19. OS release 20. Disk information 21. /sys/devices/virtual/dmi/id 22. dmidecode 23. BIOS ------------------------------------------------------------ ------------------------------------------------------------ 1. uname -a Linux localhost 5.14.21-150400.22-default #1 SMP PREEMPT_DYNAMIC Wed May 11 06:57:18 UTC 2022 (49db222/lp) x86_64 x86_64 x86_64 GNU/Linux ------------------------------------------------------------ 2. w 12:01:33 up 2 min, 1 user, load average: 5.51, 4.79, 1.99 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 10.118.163.62 12:00 13.00s 2.76s 0.39s /home/benchmark/ptu_v4.0/UNIFIED_SERVER_PTAT_V4.0.0_20230110/ptat -mon -i 5000000 -filter 0x3f -y -ts -csv -log ------------------------------------------------------------ 3. Username From environment variable $USER: root ------------------------------------------------------------ 4. ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 4125145 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) unlimited cpu time (seconds, -t) unlimited max user processes (-u) 4125145 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited ------------------------------------------------------------ 5. sysinfo process ancestry /usr/lib/systemd/systemd --switched-root --system --deserialize 30 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups sshd: root@pts/0 -bash -bash runcpu --nobuild --action validate --define default-platform-flags -c ic2023.0-lin-sapphirerapids-speed-20221201.cfg --define cores=112 --tune base -o all --define intspeedaffinity --define drop_caches --define smt-on intspeed runcpu --nobuild --action validate --define default-platform-flags --configfile ic2023.0-lin-sapphirerapids-speed-20221201.cfg --define cores=112 --tune base --output_format all --define intspeedaffinity --define drop_caches --define smt-on --nopower --runmode speed --tune base --size refspeed intspeed --nopreenv --note-preenv --logfile $SPEC/tmp/CPU2017.001/templogs/preenv.intspeed.001.0.log --lognum 001.0 --from_runcpu 2 specperl $SPEC/bin/sysinfo $SPEC = /home/benchmark/speccpu-1.1.9 ------------------------------------------------------------ 6. /proc/cpuinfo model name : Intel (R) Xeon (R) CPU Max 9480 vendor_id : GenuineIntel cpu family : 6 model : 143 stepping : 8 microcode : 0x2c000120 bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs cpu cores : 56 siblings : 112 2 physical ids (chips) 224 processors (hardware threads) physical id 0: core ids 0-55 physical id 1: core ids 0-55 physical id 0: apicids 0-111 physical id 1: apicids 128-239 Caution: /proc/cpuinfo data regarding chips, cores, and threads is not necessarily reliable, especially for virtualized systems. Use the above data carefully. ------------------------------------------------------------ 7. lscpu From lscpu from util-linux 2.37.2: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 46 bits physical, 57 bits virtual Byte Order: Little Endian CPU(s): 224 On-line CPU(s) list: 0-223 Vendor ID: GenuineIntel Model name: Intel (R) Xeon (R) CPU Max 9480 CPU family: 6 Model: 143 Thread(s) per core: 2 Core(s) per socket: 56 Socket(s): 2 Stepping: 8 CPU max MHz: 3500.0000 CPU min MHz: 800.0000 BogoMIPS: 3800.00 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single intel_ppin cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect avx_vnni avx512_bf16 wbnoinvd dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke waitpkg avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid bus_lock_detect cldemote movdiri movdir64b enqcmd fsrm md_clear serialize tsxldtrk pconfig arch_lbr avx512_fp16 amx_tile flush_l1d arch_capabilities Virtualization: VT-x L1d cache: 5.3 MiB (112 instances) L1i cache: 3.5 MiB (112 instances) L2 cache: 224 MiB (112 instances) L3 cache: 225 MiB (2 instances) NUMA node(s): 8 NUMA node0 CPU(s): 0-13,112-125 NUMA node1 CPU(s): 14-27,126-139 NUMA node2 CPU(s): 28-41,140-153 NUMA node3 CPU(s): 42-55,154-167 NUMA node4 CPU(s): 56-69,168-181 NUMA node5 CPU(s): 70-83,182-195 NUMA node6 CPU(s): 84-97,196-209 NUMA node7 CPU(s): 98-111,210-223 Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Vulnerability Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected From lscpu --cache: NAME ONE-SIZE ALL-SIZE WAYS TYPE LEVEL SETS PHY-LINE COHERENCY-SIZE L1d 48K 5.3M 12 Data 1 64 1 64 L1i 32K 3.5M 8 Instruction 1 64 1 64 L2 2M 224M 16 Unified 2 2048 1 64 L3 112.5M 225M 15 Unified 3 122880 1 64 ------------------------------------------------------------ 8. numactl --hardware NOTE: a numactl 'node' might or might not correspond to a physical chip. available: 8 nodes (0-7) node 0 cpus: 0-13,112-125 node 0 size: 128597 MB node 0 free: 127548 MB node 1 cpus: 14-27,126-139 node 1 size: 129016 MB node 1 free: 128047 MB node 2 cpus: 28-41,140-153 node 2 size: 129016 MB node 2 free: 128367 MB node 3 cpus: 42-55,154-167 node 3 size: 129016 MB node 3 free: 128447 MB node 4 cpus: 56-69,168-181 node 4 size: 129016 MB node 4 free: 128354 MB node 5 cpus: 70-83,182-195 node 5 size: 128982 MB node 5 free: 128348 MB node 6 cpus: 84-97,196-209 node 6 size: 129016 MB node 6 free: 128401 MB node 7 cpus: 98-111,210-223 node 7 size: 128646 MB node 7 free: 127793 MB node distances: node 0 1 2 3 4 5 6 7 0: 10 12 12 12 21 21 21 21 1: 12 10 12 12 21 21 21 21 2: 12 12 10 12 21 21 21 21 3: 12 12 12 10 21 21 21 21 4: 21 21 21 21 10 12 12 12 5: 21 21 21 21 12 10 12 12 6: 21 21 21 21 12 12 10 12 7: 21 21 21 21 12 12 12 10 ------------------------------------------------------------ 9. /proc/meminfo MemTotal: 1056062088 kB ------------------------------------------------------------ 10. who -r run-level 3 Jun 13 12:00 ------------------------------------------------------------ 11. Systemd service manager version: systemd 249 (249.11+suse.124.g2bc0b2c447) Default Target Status multi-user degraded ------------------------------------------------------------ 12. Failed units, from systemctl list-units --state=failed UNIT LOAD ACTIVE SUB DESCRIPTION * sep5.service loaded failed failed systemd script to load sep5 driver at boot time ------------------------------------------------------------ 13. Services, from systemctl list-unit-files STATE UNIT FILES enabled YaST2-Firstboot YaST2-Second-Stage apparmor auditd bluetooth cron display-manager getty@ haveged irqbalance iscsi issue-generator kbdsettings kdump kdump-early klog lvm2-monitor nscd postfix purge-kernels rollback rsyslog sep5 smartd sshd wicked wickedd-auto4 wickedd-dhcp4 wickedd-dhcp6 wickedd-nanny enabled-runtime systemd-remount-fs disabled accounts-daemon appstream-sync-cache autofs autoyast-initscripts blk-availability bluetooth-mesh boot-sysctl ca-certificates chrony-wait chronyd console-getty cups cups-browsed debug-shell ebtables exchange-bmc-os-info firewalld gpm grub2-once haveged-switch-root ipmi ipmievd iscsi-init iscsid iscsiuio issue-add-ssh-keys kexec-load lunmask man-db-create multipathd nfs nfs-blkmap nmb ostree-remount rdisc rpcbind rpmconfigcheck rsyncd rtkit-daemon serial-getty@ smartd_generate_opts smb snmpd snmptrapd speech-dispatcherd systemd-boot-check-no-failures systemd-network-generator systemd-sysext systemd-time-wait-sync systemd-timesyncd udisks2 upower indirect wickedd ------------------------------------------------------------ 14. Linux kernel boot-time arguments, from /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-5.14.21-150400.22-default root=UUID=0e5beafe-73ba-4cb4-b738-5343b4292867 splash=silent mitigations=auto quiet security=apparmor crashkernel=322M,high crashkernel=72M,low nohz_full=1-223 ------------------------------------------------------------ 15. cpupower frequency-info analyzing CPU 0: current policy: frequency should be within 800 MHz and 3.50 GHz. The governor "powersave" may decide which speed to use within this range. boost state support: Supported: yes Active: yes ------------------------------------------------------------ 16. sysctl kernel.numa_balancing 1 kernel.randomize_va_space 2 vm.compaction_proactiveness 20 vm.dirty_background_bytes 0 vm.dirty_background_ratio 10 vm.dirty_bytes 0 vm.dirty_expire_centisecs 3000 vm.dirty_ratio 20 vm.dirty_writeback_centisecs 500 vm.dirtytime_expire_seconds 43200 vm.extfrag_threshold 500 vm.min_unmapped_ratio 1 vm.nr_hugepages 0 vm.nr_hugepages_mempolicy 0 vm.nr_overcommit_hugepages 0 vm.swappiness 60 vm.watermark_boost_factor 15000 vm.watermark_scale_factor 10 vm.zone_reclaim_mode 0 ------------------------------------------------------------ 17. /sys/kernel/mm/transparent_hugepage defrag always defer defer+madvise [madvise] never enabled [always] madvise never hpage_pmd_size 2097152 shmem_enabled always within_size advise [never] deny force ------------------------------------------------------------ 18. /sys/kernel/mm/transparent_hugepage/khugepaged alloc_sleep_millisecs 60000 defrag 1 max_ptes_none 511 max_ptes_shared 256 max_ptes_swap 64 pages_to_scan 4096 scan_sleep_millisecs 10000 ------------------------------------------------------------ 19. OS release From /etc/*-release /etc/*-version os-release SUSE Linux Enterprise Server 15 SP4 ------------------------------------------------------------ 20. Disk information SPEC is set to: /home/benchmark/speccpu-1.1.9 Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 xfs 1.8T 117G 1.7T 7% / ------------------------------------------------------------ 21. /sys/devices/virtual/dmi/id Vendor: FUJITSU Product: PRIMERGY RX2540 M7 Product Family: SERVER Serial: EWCExxxxxx ------------------------------------------------------------ 22. dmidecode Additional information from dmidecode 3.2 follows. WARNING: Use caution when you interpret this section. The 'dmidecode' program reads system data which is "intended to allow hardware to be accurately determined", but the intent may not be met, as there are frequent changes to hardware, firmware, and the "DMTF SMBIOS" standard. Memory: 8x Intel 16 GB 1 rank 3200 2x Samsung M321R8GA0BB0-CQKDG 64 GB 2 rank 4800 8x Samsung M321R8GA0BB0-CQKEG 64 GB 2 rank 4800 6x Samsung M321R8GA0BB0-CQKVG 64 GB 2 rank 4800 ------------------------------------------------------------ 23. BIOS (This section combines info from /sys/devices and dmidecode.) BIOS Vendor: FUJITSU BIOS Version: V1.0.0.0 R1.1.0 for D3983-A1x BIOS Date: 02/03/2023 BIOS Revision: 1.1 Firmware Revision: 2.0 Each Intel Xeon CPU Max processor is configured with 64 GB of High Bandwidth Memory (HBM) in-package. dmidecode is additionally reporting the capacity of the CPU in-package HBM stack as: '8x Intel 16 GB 1 rank 3200' Compiler Version Notes ---------------------- ============================================================================================================ C | 600.perlbench_s(base) 602.gcc_s(base) 605.mcf_s(base) 625.x264_s(base) 657.xz_s(base) ------------------------------------------------------------------------------------------------------------ Intel(R) oneAPI DPC++/C++ Compiler for applications running on Intel(R) 64, Version 2023.0.0 Build 20221201 Copyright (C) 1985-2022 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------------------------------------ ============================================================================================================ C++ | 620.omnetpp_s(base) 623.xalancbmk_s(base) 631.deepsjeng_s(base) 641.leela_s(base) ------------------------------------------------------------------------------------------------------------ Intel(R) oneAPI DPC++/C++ Compiler for applications running on Intel(R) 64, Version 2023.0.0 Build 20221201 Copyright (C) 1985-2022 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------------------------------------ ============================================================================================================ Fortran | 648.exchange2_s(base) ------------------------------------------------------------------------------------------------------------ Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2023.0.0 Build 20221201 Copyright (C) 1985-2022 Intel Corporation. All rights reserved. ------------------------------------------------------------------------------------------------------------ Base Compiler Invocation ------------------------ C benchmarks: icx C++ benchmarks: icpx Fortran benchmarks: ifx Base Portability Flags ---------------------- 600.perlbench_s: -DSPEC_LP64 -DSPEC_LINUX_X64 602.gcc_s: -DSPEC_LP64 605.mcf_s: -DSPEC_LP64 620.omnetpp_s: -DSPEC_LP64 623.xalancbmk_s: -DSPEC_LP64 -DSPEC_LINUX 625.x264_s: -DSPEC_LP64 631.deepsjeng_s: -DSPEC_LP64 641.leela_s: -DSPEC_LP64 648.exchange2_s: -DSPEC_LP64 657.xz_s: -DSPEC_LP64 Base Optimization Flags ----------------------- C benchmarks: -m64 -std=c11 -Wl,-z,muldefs -xsapphirerapids -O3 -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4 -fiopenmp -DSPEC_OPENMP -L/usr/local/jemalloc64-5.0.1/lib -ljemalloc C++ benchmarks: -m64 -std=c++14 -Wl,-z,muldefs -xsapphirerapids -O3 -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4 -L/usr/local/jemalloc64-5.0.1/lib -ljemalloc Fortran benchmarks: -m64 -Wl,-z,muldefs -xsapphirerapids -O3 -ffast-math -flto -mfpmath=sse -funroll-loops -qopt-mem-layout-trans=4 -nostandard-realloc-lhs -align array32byte -L/usr/local/jemalloc64-5.0.1/lib -ljemalloc The flags files that were used to format this result can be browsed at http://www.spec.org/cpu2017/flags/Fujitsu-Platform-Settings-V1.0-SPR-RevC.html http://www.spec.org/cpu2017/flags/Intel-ic2023-official-linux64.html You can also download the XML flags sources by saving the following links: http://www.spec.org/cpu2017/flags/Fujitsu-Platform-Settings-V1.0-SPR-RevC.xml http://www.spec.org/cpu2017/flags/Intel-ic2023-official-linux64.xml SPEC CPU and SPECspeed are registered trademarks of the Standard Performance Evaluation Corporation. All other brand and product names appearing in this result are trademarks or registered trademarks of their respective holders. ---------------------------------------------------------------------------------------------------------------------------------- For questions about this result, please contact the tester. For other inquiries, please contact info@spec.org. Copyright 2017-2024 Standard Performance Evaluation Corporation Tested with SPEC CPU(R)2017 v1.1.9 on 2023-06-12 23:01:32-0400. Report generated on 2024-01-29 18:11:32 by CPU2017 text formatter v6255. Originally published on 2023-10-10.