Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Algol68
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C with Coccinelle
C++ with Coccinelle
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Mojo
Nim
Numba
Nix
Objective-C
Objective-C++
OCaml
Odin
OpenCL C
Pascal
Pony
PTX
Python
Racket
Raku
Ruby
Rust
Sail
Snowball
Scala
Slang
Solidity
Spice
SPIR-V
Swift
LLVM TableGen
Toit
Triton
TypeScript Native
V
Vala
Visual Basic
Vyper
WASM
Yul (Solidity IR)
Zig
Javascript
GIMPLE
Ygen
sway
c++ source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
6502-c++ 11.1.0
ARM GCC 10.2.0
ARM GCC 10.3.0
ARM GCC 10.4.0
ARM GCC 10.5.0
ARM GCC 11.1.0
ARM GCC 11.2.0
ARM GCC 11.3.0
ARM GCC 11.4.0
ARM GCC 12.1.0
ARM GCC 12.2.0
ARM GCC 12.3.0
ARM GCC 12.4.0
ARM GCC 12.5.0
ARM GCC 13.1.0
ARM GCC 13.2.0
ARM GCC 13.2.0 (unknown-eabi)
ARM GCC 13.3.0
ARM GCC 13.3.0 (unknown-eabi)
ARM GCC 13.4.0
ARM GCC 13.4.0 (unknown-eabi)
ARM GCC 14.1.0
ARM GCC 14.1.0 (unknown-eabi)
ARM GCC 14.2.0
ARM GCC 14.2.0 (unknown-eabi)
ARM GCC 14.3.0
ARM GCC 14.3.0 (unknown-eabi)
ARM GCC 15.1.0
ARM GCC 15.1.0 (unknown-eabi)
ARM GCC 15.2.0
ARM GCC 15.2.0 (unknown-eabi)
ARM GCC 4.5.4
ARM GCC 4.6.4
ARM GCC 5.4
ARM GCC 6.3.0
ARM GCC 6.4.0
ARM GCC 7.3.0
ARM GCC 7.5.0
ARM GCC 8.2.0
ARM GCC 8.5.0
ARM GCC 9.3.0
ARM GCC 9.4.0
ARM GCC 9.5.0
ARM GCC trunk
ARM gcc 10.2.1 (none)
ARM gcc 10.3.1 (2021.07 none)
ARM gcc 10.3.1 (2021.10 none)
ARM gcc 11.2.1 (none)
ARM gcc 5.4.1 (none)
ARM gcc 7.2.1 (none)
ARM gcc 8.2 (WinCE)
ARM gcc 8.3.1 (none)
ARM gcc 9.2.1 (none)
ARM msvc v19.0 (ex-WINE)
ARM msvc v19.10 (ex-WINE)
ARM msvc v19.14 (ex-WINE)
ARM64 Morello gcc 10.1 Alpha 2
ARM64 gcc 10.2
ARM64 gcc 10.3
ARM64 gcc 10.4
ARM64 gcc 10.5.0
ARM64 gcc 11.1
ARM64 gcc 11.2
ARM64 gcc 11.3
ARM64 gcc 11.4.0
ARM64 gcc 12.1
ARM64 gcc 12.2.0
ARM64 gcc 12.3.0
ARM64 gcc 12.4.0
ARM64 gcc 12.5.0
ARM64 gcc 13.1.0
ARM64 gcc 13.2.0
ARM64 gcc 13.3.0
ARM64 gcc 13.4.0
ARM64 gcc 14.1.0
ARM64 gcc 14.2.0
ARM64 gcc 14.3.0
ARM64 gcc 15.1.0
ARM64 gcc 15.2.0
ARM64 gcc 4.9.4
ARM64 gcc 5.4
ARM64 gcc 5.5.0
ARM64 gcc 6.3
ARM64 gcc 6.4
ARM64 gcc 7.3
ARM64 gcc 7.5
ARM64 gcc 8.2
ARM64 gcc 8.5
ARM64 gcc 9.3
ARM64 gcc 9.4
ARM64 gcc 9.5
ARM64 gcc trunk
ARM64 msvc v19.14 (ex-WINE)
AVR gcc 10.3.0
AVR gcc 11.1.0
AVR gcc 12.1.0
AVR gcc 12.2.0
AVR gcc 12.3.0
AVR gcc 12.4.0
AVR gcc 12.5.0
AVR gcc 13.1.0
AVR gcc 13.2.0
AVR gcc 13.3.0
AVR gcc 13.4.0
AVR gcc 14.1.0
AVR gcc 14.2.0
AVR gcc 14.3.0
AVR gcc 15.1.0
AVR gcc 15.2.0
AVR gcc 4.5.4
AVR gcc 4.6.4
AVR gcc 5.4.0
AVR gcc 9.2.0
AVR gcc 9.3.0
Arduino Mega (1.8.9)
Arduino Uno (1.8.9)
BPF clang (trunk)
BPF clang 13.0.0
BPF clang 14.0.0
BPF clang 15.0.0
BPF clang 16.0.0
BPF clang 17.0.1
BPF clang 18.1.0
BPF clang 19.1.0
BPF clang 20.1.0
BPF clang 21.1.0
EDG (experimental reflection)
EDG 6.5
EDG 6.5 (GNU mode gcc 13)
EDG 6.6
EDG 6.6 (GNU mode gcc 13)
EDG 6.7
EDG 6.7 (GNU mode gcc 14)
FRC 2019
FRC 2020
FRC 2023
HPPA gcc 14.2.0
HPPA gcc 14.3.0
HPPA gcc 15.1.0
HPPA gcc 15.2.0
KVX ACB 4.1.0 (GCC 7.5.0)
KVX ACB 4.1.0-cd1 (GCC 7.5.0)
KVX ACB 4.10.0 (GCC 10.3.1)
KVX ACB 4.11.1 (GCC 10.3.1)
KVX ACB 4.12.0 (GCC 11.3.0)
KVX ACB 4.2.0 (GCC 7.5.0)
KVX ACB 4.3.0 (GCC 7.5.0)
KVX ACB 4.4.0 (GCC 7.5.0)
KVX ACB 4.6.0 (GCC 9.4.1)
KVX ACB 4.8.0 (GCC 9.4.1)
KVX ACB 4.9.0 (GCC 9.4.1)
KVX ACB 5.0.0 (GCC 12.2.1)
KVX ACB 5.2.0 (GCC 13.2.1)
LoongArch64 clang (trunk)
LoongArch64 clang 17.0.1
LoongArch64 clang 18.1.0
LoongArch64 clang 19.1.0
LoongArch64 clang 20.1.0
LoongArch64 clang 21.1.0
M68K gcc 13.1.0
M68K gcc 13.2.0
M68K gcc 13.3.0
M68K gcc 13.4.0
M68K gcc 14.1.0
M68K gcc 14.2.0
M68K gcc 14.3.0
M68K gcc 15.1.0
M68K gcc 15.2.0
M68k clang (trunk)
MRISC32 gcc (trunk)
MSP430 gcc 4.5.3
MSP430 gcc 5.3.0
MSP430 gcc 6.2.1
MinGW clang 14.0.3
MinGW clang 14.0.6
MinGW clang 15.0.7
MinGW clang 16.0.0
MinGW clang 16.0.2
MinGW gcc 11.3.0
MinGW gcc 12.1.0
MinGW gcc 12.2.0
MinGW gcc 13.1.0
MinGW gcc 14.3.0
MinGW gcc 15.2.0
RISC-V (32-bits) gcc (trunk)
RISC-V (32-bits) gcc 10.2.0
RISC-V (32-bits) gcc 10.3.0
RISC-V (32-bits) gcc 11.2.0
RISC-V (32-bits) gcc 11.3.0
RISC-V (32-bits) gcc 11.4.0
RISC-V (32-bits) gcc 12.1.0
RISC-V (32-bits) gcc 12.2.0
RISC-V (32-bits) gcc 12.3.0
RISC-V (32-bits) gcc 12.4.0
RISC-V (32-bits) gcc 12.5.0
RISC-V (32-bits) gcc 13.1.0
RISC-V (32-bits) gcc 13.2.0
RISC-V (32-bits) gcc 13.3.0
RISC-V (32-bits) gcc 13.4.0
RISC-V (32-bits) gcc 14.1.0
RISC-V (32-bits) gcc 14.2.0
RISC-V (32-bits) gcc 14.3.0
RISC-V (32-bits) gcc 15.1.0
RISC-V (32-bits) gcc 15.2.0
RISC-V (32-bits) gcc 8.2.0
RISC-V (32-bits) gcc 8.5.0
RISC-V (32-bits) gcc 9.4.0
RISC-V (64-bits) gcc (trunk)
RISC-V (64-bits) gcc 10.2.0
RISC-V (64-bits) gcc 10.3.0
RISC-V (64-bits) gcc 11.2.0
RISC-V (64-bits) gcc 11.3.0
RISC-V (64-bits) gcc 11.4.0
RISC-V (64-bits) gcc 12.1.0
RISC-V (64-bits) gcc 12.2.0
RISC-V (64-bits) gcc 12.3.0
RISC-V (64-bits) gcc 12.4.0
RISC-V (64-bits) gcc 12.5.0
RISC-V (64-bits) gcc 13.1.0
RISC-V (64-bits) gcc 13.2.0
RISC-V (64-bits) gcc 13.3.0
RISC-V (64-bits) gcc 13.4.0
RISC-V (64-bits) gcc 14.1.0
RISC-V (64-bits) gcc 14.2.0
RISC-V (64-bits) gcc 14.3.0
RISC-V (64-bits) gcc 15.1.0
RISC-V (64-bits) gcc 15.2.0
RISC-V (64-bits) gcc 8.2.0
RISC-V (64-bits) gcc 8.5.0
RISC-V (64-bits) gcc 9.4.0
RISC-V rv32gc clang (trunk)
RISC-V rv32gc clang 10.0.0
RISC-V rv32gc clang 10.0.1
RISC-V rv32gc clang 11.0.0
RISC-V rv32gc clang 11.0.1
RISC-V rv32gc clang 12.0.0
RISC-V rv32gc clang 12.0.1
RISC-V rv32gc clang 13.0.0
RISC-V rv32gc clang 13.0.1
RISC-V rv32gc clang 14.0.0
RISC-V rv32gc clang 15.0.0
RISC-V rv32gc clang 16.0.0
RISC-V rv32gc clang 17.0.1
RISC-V rv32gc clang 18.1.0
RISC-V rv32gc clang 19.1.0
RISC-V rv32gc clang 20.1.0
RISC-V rv32gc clang 21.1.0
RISC-V rv32gc clang 9.0.0
RISC-V rv32gc clang 9.0.1
RISC-V rv64gc clang (trunk)
RISC-V rv64gc clang 10.0.0
RISC-V rv64gc clang 10.0.1
RISC-V rv64gc clang 11.0.0
RISC-V rv64gc clang 11.0.1
RISC-V rv64gc clang 12.0.0
RISC-V rv64gc clang 12.0.1
RISC-V rv64gc clang 13.0.0
RISC-V rv64gc clang 13.0.1
RISC-V rv64gc clang 14.0.0
RISC-V rv64gc clang 15.0.0
RISC-V rv64gc clang 16.0.0
RISC-V rv64gc clang 17.0.1
RISC-V rv64gc clang 18.1.0
RISC-V rv64gc clang 19.1.0
RISC-V rv64gc clang 20.1.0
RISC-V rv64gc clang 21.1.0
RISC-V rv64gc clang 9.0.0
RISC-V rv64gc clang 9.0.1
Raspbian Buster
Raspbian Stretch
SPARC LEON gcc 12.2.0
SPARC LEON gcc 12.3.0
SPARC LEON gcc 12.4.0
SPARC LEON gcc 12.5.0
SPARC LEON gcc 13.1.0
SPARC LEON gcc 13.2.0
SPARC LEON gcc 13.3.0
SPARC LEON gcc 13.4.0
SPARC LEON gcc 14.1.0
SPARC LEON gcc 14.2.0
SPARC LEON gcc 14.3.0
SPARC LEON gcc 15.1.0
SPARC LEON gcc 15.2.0
SPARC gcc 12.2.0
SPARC gcc 12.3.0
SPARC gcc 12.4.0
SPARC gcc 12.5.0
SPARC gcc 13.1.0
SPARC gcc 13.2.0
SPARC gcc 13.3.0
SPARC gcc 13.4.0
SPARC gcc 14.1.0
SPARC gcc 14.2.0
SPARC gcc 14.3.0
SPARC gcc 15.1.0
SPARC gcc 15.2.0
SPARC64 gcc 12.2.0
SPARC64 gcc 12.3.0
SPARC64 gcc 12.4.0
SPARC64 gcc 12.5.0
SPARC64 gcc 13.1.0
SPARC64 gcc 13.2.0
SPARC64 gcc 13.3.0
SPARC64 gcc 13.4.0
SPARC64 gcc 14.1.0
SPARC64 gcc 14.2.0
SPARC64 gcc 14.3.0
SPARC64 gcc 15.1.0
SPARC64 gcc 15.2.0
TI C6x gcc 12.2.0
TI C6x gcc 12.3.0
TI C6x gcc 12.4.0
TI C6x gcc 12.5.0
TI C6x gcc 13.1.0
TI C6x gcc 13.2.0
TI C6x gcc 13.3.0
TI C6x gcc 13.4.0
TI C6x gcc 14.1.0
TI C6x gcc 14.2.0
TI C6x gcc 14.3.0
TI C6x gcc 15.1.0
TI C6x gcc 15.2.0
TI CL430 21.6.1
Tricore gcc 11.3.0 (EEESlab)
VAX gcc NetBSDELF 10.4.0
VAX gcc NetBSDELF 10.5.0 (Nov 15 03:50:22 2023)
VAX gcc NetBSDELF 12.4.0 (Apr 16 05:27 2025)
WebAssembly clang (trunk)
Xtensa ESP32 gcc 11.2.0 (2022r1)
Xtensa ESP32 gcc 12.2.0 (20230208)
Xtensa ESP32 gcc 14.2.0 (20241119)
Xtensa ESP32 gcc 8.2.0 (2019r2)
Xtensa ESP32 gcc 8.2.0 (2020r1)
Xtensa ESP32 gcc 8.2.0 (2020r2)
Xtensa ESP32 gcc 8.4.0 (2020r3)
Xtensa ESP32 gcc 8.4.0 (2021r1)
Xtensa ESP32 gcc 8.4.0 (2021r2)
Xtensa ESP32-S2 gcc 11.2.0 (2022r1)
Xtensa ESP32-S2 gcc 12.2.0 (20230208)
Xtensa ESP32-S2 gcc 14.2.0 (20241119)
Xtensa ESP32-S2 gcc 8.2.0 (2019r2)
Xtensa ESP32-S2 gcc 8.2.0 (2020r1)
Xtensa ESP32-S2 gcc 8.2.0 (2020r2)
Xtensa ESP32-S2 gcc 8.4.0 (2020r3)
Xtensa ESP32-S2 gcc 8.4.0 (2021r1)
Xtensa ESP32-S2 gcc 8.4.0 (2021r2)
Xtensa ESP32-S3 gcc 11.2.0 (2022r1)
Xtensa ESP32-S3 gcc 12.2.0 (20230208)
Xtensa ESP32-S3 gcc 14.2.0 (20241119)
Xtensa ESP32-S3 gcc 8.4.0 (2020r3)
Xtensa ESP32-S3 gcc 8.4.0 (2021r1)
Xtensa ESP32-S3 gcc 8.4.0 (2021r2)
arm64 msvc v19.20 VS16.0
arm64 msvc v19.21 VS16.1
arm64 msvc v19.22 VS16.2
arm64 msvc v19.23 VS16.3
arm64 msvc v19.24 VS16.4
arm64 msvc v19.25 VS16.5
arm64 msvc v19.27 VS16.7
arm64 msvc v19.28 VS16.8
arm64 msvc v19.28 VS16.9
arm64 msvc v19.29 VS16.10
arm64 msvc v19.29 VS16.11
arm64 msvc v19.30 VS17.0
arm64 msvc v19.31 VS17.1
arm64 msvc v19.32 VS17.2
arm64 msvc v19.33 VS17.3
arm64 msvc v19.34 VS17.4
arm64 msvc v19.35 VS17.5
arm64 msvc v19.36 VS17.6
arm64 msvc v19.37 VS17.7
arm64 msvc v19.38 VS17.8
arm64 msvc v19.39 VS17.9
arm64 msvc v19.40 VS17.10
arm64 msvc v19.41 VS17.11
arm64 msvc v19.42 VS17.12
arm64 msvc v19.43 VS17.13
arm64 msvc v19.latest
armv7-a clang (trunk)
armv7-a clang 10.0.0
armv7-a clang 10.0.1
armv7-a clang 11.0.0
armv7-a clang 11.0.1
armv7-a clang 12.0.0
armv7-a clang 12.0.1
armv7-a clang 13.0.0
armv7-a clang 13.0.1
armv7-a clang 14.0.0
armv7-a clang 15.0.0
armv7-a clang 16.0.0
armv7-a clang 17.0.1
armv7-a clang 18.1.0
armv7-a clang 19.1.0
armv7-a clang 20.1.0
armv7-a clang 21.1.0
armv7-a clang 9.0.0
armv7-a clang 9.0.1
armv8-a clang (all architectural features, trunk)
armv8-a clang (trunk)
armv8-a clang 10.0.0
armv8-a clang 10.0.1
armv8-a clang 11.0.0
armv8-a clang 11.0.1
armv8-a clang 12.0.0
armv8-a clang 13.0.0
armv8-a clang 14.0.0
armv8-a clang 15.0.0
armv8-a clang 16.0.0
armv8-a clang 17.0.1
armv8-a clang 18.1.0
armv8-a clang 19.1.0
armv8-a clang 20.1.0
armv8-a clang 21.1.0
armv8-a clang 9.0.0
armv8-a clang 9.0.1
clad trunk (clang 21.1.0)
clad v1.10 (clang 20.1.0)
clad v1.8 (clang 18.1.0)
clad v1.9 (clang 19.1.0)
clad v2.00 (clang 20.1.0)
clad v2.1 (clang 21.1.0)
clang-cl 18.1.0
ellcc 0.1.33
ellcc 0.1.34
ellcc 2017-07-16
ez80-clang 15.0.0
ez80-clang 15.0.7
hexagon-clang 16.0.5
llvm-mos atari2600-3e
llvm-mos atari2600-4k
llvm-mos atari2600-common
llvm-mos atari5200-supercart
llvm-mos atari8-cart-megacart
llvm-mos atari8-cart-std
llvm-mos atari8-cart-xegs
llvm-mos atari8-common
llvm-mos atari8-dos
llvm-mos c128
llvm-mos c64
llvm-mos commodore
llvm-mos cpm65
llvm-mos cx16
llvm-mos dodo
llvm-mos eater
llvm-mos mega65
llvm-mos nes
llvm-mos nes-action53
llvm-mos nes-cnrom
llvm-mos nes-gtrom
llvm-mos nes-mmc1
llvm-mos nes-mmc3
llvm-mos nes-nrom
llvm-mos nes-unrom
llvm-mos nes-unrom-512
llvm-mos osi-c1p
llvm-mos pce
llvm-mos pce-cd
llvm-mos pce-common
llvm-mos pet
llvm-mos rp6502
llvm-mos rpc8e
llvm-mos supervision
llvm-mos vic20
loongarch64 gcc 12.2.0
loongarch64 gcc 12.3.0
loongarch64 gcc 12.4.0
loongarch64 gcc 12.5.0
loongarch64 gcc 13.1.0
loongarch64 gcc 13.2.0
loongarch64 gcc 13.3.0
loongarch64 gcc 13.4.0
loongarch64 gcc 14.1.0
loongarch64 gcc 14.2.0
loongarch64 gcc 14.3.0
loongarch64 gcc 15.1.0
loongarch64 gcc 15.2.0
mips clang 13.0.0
mips clang 14.0.0
mips clang 15.0.0
mips clang 16.0.0
mips clang 17.0.1
mips clang 18.1.0
mips clang 19.1.0
mips clang 20.1.0
mips clang 21.1.0
mips gcc 11.2.0
mips gcc 12.1.0
mips gcc 12.2.0
mips gcc 12.3.0
mips gcc 12.4.0
mips gcc 12.5.0
mips gcc 13.1.0
mips gcc 13.2.0
mips gcc 13.3.0
mips gcc 13.4.0
mips gcc 14.1.0
mips gcc 14.2.0
mips gcc 14.3.0
mips gcc 15.1.0
mips gcc 15.2.0
mips gcc 4.9.4
mips gcc 5.4
mips gcc 5.5.0
mips gcc 9.3.0 (codescape)
mips gcc 9.5.0
mips64 (el) gcc 12.1.0
mips64 (el) gcc 12.2.0
mips64 (el) gcc 12.3.0
mips64 (el) gcc 12.4.0
mips64 (el) gcc 12.5.0
mips64 (el) gcc 13.1.0
mips64 (el) gcc 13.2.0
mips64 (el) gcc 13.3.0
mips64 (el) gcc 13.4.0
mips64 (el) gcc 14.1.0
mips64 (el) gcc 14.2.0
mips64 (el) gcc 14.3.0
mips64 (el) gcc 15.1.0
mips64 (el) gcc 15.2.0
mips64 (el) gcc 4.9.4
mips64 (el) gcc 5.4.0
mips64 (el) gcc 5.5.0
mips64 (el) gcc 9.5.0
mips64 clang 13.0.0
mips64 clang 14.0.0
mips64 clang 15.0.0
mips64 clang 16.0.0
mips64 clang 17.0.1
mips64 clang 18.1.0
mips64 clang 19.1.0
mips64 clang 20.1.0
mips64 clang 21.1.0
mips64 gcc 11.2.0
mips64 gcc 12.1.0
mips64 gcc 12.2.0
mips64 gcc 12.3.0
mips64 gcc 12.4.0
mips64 gcc 12.5.0
mips64 gcc 13.1.0
mips64 gcc 13.2.0
mips64 gcc 13.3.0
mips64 gcc 13.4.0
mips64 gcc 14.1.0
mips64 gcc 14.2.0
mips64 gcc 14.3.0
mips64 gcc 15.1.0
mips64 gcc 15.2.0
mips64 gcc 4.9.4
mips64 gcc 5.4.0
mips64 gcc 5.5.0
mips64 gcc 9.5.0
mips64el clang 13.0.0
mips64el clang 14.0.0
mips64el clang 15.0.0
mips64el clang 16.0.0
mips64el clang 17.0.1
mips64el clang 18.1.0
mips64el clang 19.1.0
mips64el clang 20.1.0
mips64el clang 21.1.0
mipsel clang 13.0.0
mipsel clang 14.0.0
mipsel clang 15.0.0
mipsel clang 16.0.0
mipsel clang 17.0.1
mipsel clang 18.1.0
mipsel clang 19.1.0
mipsel clang 20.1.0
mipsel clang 21.1.0
mipsel gcc 12.1.0
mipsel gcc 12.2.0
mipsel gcc 12.3.0
mipsel gcc 12.4.0
mipsel gcc 12.5.0
mipsel gcc 13.1.0
mipsel gcc 13.2.0
mipsel gcc 13.3.0
mipsel gcc 13.4.0
mipsel gcc 14.1.0
mipsel gcc 14.2.0
mipsel gcc 14.3.0
mipsel gcc 15.1.0
mipsel gcc 15.2.0
mipsel gcc 4.9.4
mipsel gcc 5.4.0
mipsel gcc 5.5.0
mipsel gcc 9.5.0
nanoMIPS gcc 6.3.0 (mtk)
power gcc 11.2.0
power gcc 12.1.0
power gcc 12.2.0
power gcc 12.3.0
power gcc 12.4.0
power gcc 12.5.0
power gcc 13.1.0
power gcc 13.2.0
power gcc 13.3.0
power gcc 13.4.0
power gcc 14.1.0
power gcc 14.2.0
power gcc 14.3.0
power gcc 15.1.0
power gcc 15.2.0
power gcc 4.8.5
power64 AT12.0 (gcc8)
power64 AT13.0 (gcc9)
power64 gcc 11.2.0
power64 gcc 12.1.0
power64 gcc 12.2.0
power64 gcc 12.3.0
power64 gcc 12.4.0
power64 gcc 12.5.0
power64 gcc 13.1.0
power64 gcc 13.2.0
power64 gcc 13.3.0
power64 gcc 13.4.0
power64 gcc 14.1.0
power64 gcc 14.2.0
power64 gcc 14.3.0
power64 gcc 15.1.0
power64 gcc 15.2.0
power64 gcc trunk
power64le AT12.0 (gcc8)
power64le AT13.0 (gcc9)
power64le clang (trunk)
power64le gcc 11.2.0
power64le gcc 12.1.0
power64le gcc 12.2.0
power64le gcc 12.3.0
power64le gcc 12.4.0
power64le gcc 12.5.0
power64le gcc 13.1.0
power64le gcc 13.2.0
power64le gcc 13.3.0
power64le gcc 13.4.0
power64le gcc 14.1.0
power64le gcc 14.2.0
power64le gcc 14.3.0
power64le gcc 15.1.0
power64le gcc 15.2.0
power64le gcc 6.3.0
power64le gcc trunk
powerpc64 clang (trunk)
qnx 8.0.0
s390x gcc 11.2.0
s390x gcc 12.1.0
s390x gcc 12.2.0
s390x gcc 12.3.0
s390x gcc 12.4.0
s390x gcc 12.5.0
s390x gcc 13.1.0
s390x gcc 13.2.0
s390x gcc 13.3.0
s390x gcc 13.4.0
s390x gcc 14.1.0
s390x gcc 14.2.0
s390x gcc 14.3.0
s390x gcc 15.1.0
s390x gcc 15.2.0
sh gcc 12.2.0
sh gcc 12.3.0
sh gcc 12.4.0
sh gcc 12.5.0
sh gcc 13.1.0
sh gcc 13.2.0
sh gcc 13.3.0
sh gcc 13.4.0
sh gcc 14.1.0
sh gcc 14.2.0
sh gcc 14.3.0
sh gcc 15.1.0
sh gcc 15.2.0
sh gcc 4.9.4
sh gcc 9.5.0
vast (trunk)
x64 msvc v19.0 (ex-WINE)
x64 msvc v19.10 (ex-WINE)
x64 msvc v19.14 (ex-WINE)
x64 msvc v19.20 VS16.0
x64 msvc v19.21 VS16.1
x64 msvc v19.22 VS16.2
x64 msvc v19.23 VS16.3
x64 msvc v19.24 VS16.4
x64 msvc v19.25 VS16.5
x64 msvc v19.27 VS16.7
x64 msvc v19.28 VS16.8
x64 msvc v19.28 VS16.9
x64 msvc v19.29 VS16.10
x64 msvc v19.29 VS16.11
x64 msvc v19.30 VS17.0
x64 msvc v19.31 VS17.1
x64 msvc v19.32 VS17.2
x64 msvc v19.33 VS17.3
x64 msvc v19.34 VS17.4
x64 msvc v19.35 VS17.5
x64 msvc v19.36 VS17.6
x64 msvc v19.37 VS17.7
x64 msvc v19.38 VS17.8
x64 msvc v19.39 VS17.9
x64 msvc v19.40 VS17.10
x64 msvc v19.41 VS17.11
x64 msvc v19.42 VS17.12
x64 msvc v19.43 VS17.13
x64 msvc v19.latest
x86 djgpp 4.9.4
x86 djgpp 5.5.0
x86 djgpp 6.4.0
x86 djgpp 7.2.0
x86 msvc v19.0 (ex-WINE)
x86 msvc v19.10 (ex-WINE)
x86 msvc v19.14 (ex-WINE)
x86 msvc v19.20 VS16.0
x86 msvc v19.21 VS16.1
x86 msvc v19.22 VS16.2
x86 msvc v19.23 VS16.3
x86 msvc v19.24 VS16.4
x86 msvc v19.25 VS16.5
x86 msvc v19.27 VS16.7
x86 msvc v19.28 VS16.8
x86 msvc v19.28 VS16.9
x86 msvc v19.29 VS16.10
x86 msvc v19.29 VS16.11
x86 msvc v19.30 VS17.0
x86 msvc v19.31 VS17.1
x86 msvc v19.32 VS17.2
x86 msvc v19.33 VS17.3
x86 msvc v19.34 VS17.4
x86 msvc v19.35 VS17.5
x86 msvc v19.36 VS17.6
x86 msvc v19.37 VS17.7
x86 msvc v19.38 VS17.8
x86 msvc v19.39 VS17.9
x86 msvc v19.40 VS17.10
x86 msvc v19.41 VS17.11
x86 msvc v19.42 VS17.12
x86 msvc v19.43 VS17.13
x86 msvc v19.latest
x86 nvc++ 22.11
x86 nvc++ 22.7
x86 nvc++ 22.9
x86 nvc++ 23.1
x86 nvc++ 23.11
x86 nvc++ 23.3
x86 nvc++ 23.5
x86 nvc++ 23.7
x86 nvc++ 23.9
x86 nvc++ 24.1
x86 nvc++ 24.11
x86 nvc++ 24.3
x86 nvc++ 24.5
x86 nvc++ 24.7
x86 nvc++ 24.9
x86 nvc++ 25.1
x86 nvc++ 25.3
x86 nvc++ 25.5
x86 nvc++ 25.7
x86 nvc++ 25.9
x86-64 Zapcc 190308
x86-64 clang (-fimplicit-constexpr)
x86-64 clang (Chris Bazley N3089)
x86-64 clang (EricWF contracts)
x86-64 clang (amd-staging)
x86-64 clang (assertions trunk)
x86-64 clang (clangir)
x86-64 clang (experimental -Wlifetime)
x86-64 clang (experimental P1061)
x86-64 clang (experimental P1144)
x86-64 clang (experimental P1221)
x86-64 clang (experimental P2998)
x86-64 clang (experimental P3068)
x86-64 clang (experimental P3309)
x86-64 clang (experimental P3367)
x86-64 clang (experimental P3372)
x86-64 clang (experimental P3385)
x86-64 clang (experimental P3776)
x86-64 clang (experimental metaprogramming - P2632)
x86-64 clang (old concepts branch)
x86-64 clang (p1974)
x86-64 clang (pattern matching - P2688)
x86-64 clang (reflection - C++26)
x86-64 clang (reflection - TS)
x86-64 clang (resugar)
x86-64 clang (string interpolation - P3412)
x86-64 clang (thephd.dev)
x86-64 clang (trunk)
x86-64 clang (variadic friends - P2893)
x86-64 clang (widberg)
x86-64 clang 10.0.0
x86-64 clang 10.0.0 (assertions)
x86-64 clang 10.0.1
x86-64 clang 11.0.0
x86-64 clang 11.0.0 (assertions)
x86-64 clang 11.0.1
x86-64 clang 12.0.0
x86-64 clang 12.0.0 (assertions)
x86-64 clang 12.0.1
x86-64 clang 13.0.0
x86-64 clang 13.0.0 (assertions)
x86-64 clang 13.0.1
x86-64 clang 14.0.0
x86-64 clang 14.0.0 (assertions)
x86-64 clang 15.0.0
x86-64 clang 15.0.0 (assertions)
x86-64 clang 16.0.0
x86-64 clang 16.0.0 (assertions)
x86-64 clang 17.0.1
x86-64 clang 17.0.1 (assertions)
x86-64 clang 18.1.0
x86-64 clang 18.1.0 (assertions)
x86-64 clang 19.1.0
x86-64 clang 19.1.0 (assertions)
x86-64 clang 2.6.0 (assertions)
x86-64 clang 2.7.0 (assertions)
x86-64 clang 2.8.0 (assertions)
x86-64 clang 2.9.0 (assertions)
x86-64 clang 20.1.0
x86-64 clang 20.1.0 (assertions)
x86-64 clang 21.1.0
x86-64 clang 21.1.0 (assertions)
x86-64 clang 3.0.0
x86-64 clang 3.0.0 (assertions)
x86-64 clang 3.1
x86-64 clang 3.1 (assertions)
x86-64 clang 3.2
x86-64 clang 3.2 (assertions)
x86-64 clang 3.3
x86-64 clang 3.3 (assertions)
x86-64 clang 3.4 (assertions)
x86-64 clang 3.4.1
x86-64 clang 3.5
x86-64 clang 3.5 (assertions)
x86-64 clang 3.5.1
x86-64 clang 3.5.2
x86-64 clang 3.6
x86-64 clang 3.6 (assertions)
x86-64 clang 3.7
x86-64 clang 3.7 (assertions)
x86-64 clang 3.7.1
x86-64 clang 3.8
x86-64 clang 3.8 (assertions)
x86-64 clang 3.8.1
x86-64 clang 3.9.0
x86-64 clang 3.9.0 (assertions)
x86-64 clang 3.9.1
x86-64 clang 4.0.0
x86-64 clang 4.0.0 (assertions)
x86-64 clang 4.0.1
x86-64 clang 5.0.0
x86-64 clang 5.0.0 (assertions)
x86-64 clang 5.0.1
x86-64 clang 5.0.2
x86-64 clang 6.0.0
x86-64 clang 6.0.0 (assertions)
x86-64 clang 6.0.1
x86-64 clang 7.0.0
x86-64 clang 7.0.0 (assertions)
x86-64 clang 7.0.1
x86-64 clang 7.1.0
x86-64 clang 8.0.0
x86-64 clang 8.0.0 (assertions)
x86-64 clang 8.0.1
x86-64 clang 9.0.0
x86-64 clang 9.0.0 (assertions)
x86-64 clang 9.0.1
x86-64 clang rocm-4.5.2
x86-64 clang rocm-5.0.2
x86-64 clang rocm-5.1.3
x86-64 clang rocm-5.2.3
x86-64 clang rocm-5.3.3
x86-64 clang rocm-5.7.0
x86-64 clang rocm-6.0.2
x86-64 clang rocm-6.1.2
x86-64 clang rocm-6.2.4
x86-64 clang rocm-6.3.3
x86-64 clang rocm-6.4.0
x86-64 clang rocm-7.0.1
x86-64 gcc (P2034 lambdas)
x86-64 gcc (contract labels)
x86-64 gcc (contracts natural syntax)
x86-64 gcc (contracts)
x86-64 gcc (coroutines)
x86-64 gcc (modules)
x86-64 gcc (trunk)
x86-64 gcc 10.1
x86-64 gcc 10.2
x86-64 gcc 10.3
x86-64 gcc 10.3 (assertions)
x86-64 gcc 10.4
x86-64 gcc 10.4 (assertions)
x86-64 gcc 10.5
x86-64 gcc 10.5 (assertions)
x86-64 gcc 11.1
x86-64 gcc 11.1 (assertions)
x86-64 gcc 11.2
x86-64 gcc 11.2 (assertions)
x86-64 gcc 11.3
x86-64 gcc 11.3 (assertions)
x86-64 gcc 11.4
x86-64 gcc 11.4 (assertions)
x86-64 gcc 12.1
x86-64 gcc 12.1 (assertions)
x86-64 gcc 12.2
x86-64 gcc 12.2 (assertions)
x86-64 gcc 12.3
x86-64 gcc 12.3 (assertions)
x86-64 gcc 12.4
x86-64 gcc 12.4 (assertions)
x86-64 gcc 12.5
x86-64 gcc 12.5 (assertions)
x86-64 gcc 13.1
x86-64 gcc 13.1 (assertions)
x86-64 gcc 13.2
x86-64 gcc 13.2 (assertions)
x86-64 gcc 13.3
x86-64 gcc 13.3 (assertions)
x86-64 gcc 13.4
x86-64 gcc 13.4 (assertions)
x86-64 gcc 14.1
x86-64 gcc 14.1 (assertions)
x86-64 gcc 14.2
x86-64 gcc 14.2 (assertions)
x86-64 gcc 14.3
x86-64 gcc 14.3 (assertions)
x86-64 gcc 15.1
x86-64 gcc 15.1 (assertions)
x86-64 gcc 15.2
x86-64 gcc 15.2 (assertions)
x86-64 gcc 3.4.6
x86-64 gcc 4.0.4
x86-64 gcc 4.1.2
x86-64 gcc 4.4.7
x86-64 gcc 4.5.3
x86-64 gcc 4.6.4
x86-64 gcc 4.7.1
x86-64 gcc 4.7.2
x86-64 gcc 4.7.3
x86-64 gcc 4.7.4
x86-64 gcc 4.8.1
x86-64 gcc 4.8.2
x86-64 gcc 4.8.3
x86-64 gcc 4.8.4
x86-64 gcc 4.8.5
x86-64 gcc 4.9.0
x86-64 gcc 4.9.1
x86-64 gcc 4.9.2
x86-64 gcc 4.9.3
x86-64 gcc 4.9.4
x86-64 gcc 5.1
x86-64 gcc 5.2
x86-64 gcc 5.3
x86-64 gcc 5.4
x86-64 gcc 5.5
x86-64 gcc 6.1
x86-64 gcc 6.2
x86-64 gcc 6.3
x86-64 gcc 6.4
x86-64 gcc 6.5
x86-64 gcc 7.1
x86-64 gcc 7.2
x86-64 gcc 7.3
x86-64 gcc 7.4
x86-64 gcc 7.5
x86-64 gcc 8.1
x86-64 gcc 8.2
x86-64 gcc 8.3
x86-64 gcc 8.4
x86-64 gcc 8.5
x86-64 gcc 9.1
x86-64 gcc 9.2
x86-64 gcc 9.3
x86-64 gcc 9.4
x86-64 gcc 9.5
x86-64 icc 13.0.1
x86-64 icc 16.0.3
x86-64 icc 17.0.0
x86-64 icc 18.0.0
x86-64 icc 19.0.0
x86-64 icc 19.0.1
x86-64 icc 2021.1.2
x86-64 icc 2021.10.0
x86-64 icc 2021.2.0
x86-64 icc 2021.3.0
x86-64 icc 2021.4.0
x86-64 icc 2021.5.0
x86-64 icc 2021.6.0
x86-64 icc 2021.7.0
x86-64 icc 2021.7.1
x86-64 icc 2021.8.0
x86-64 icc 2021.9.0
x86-64 icx 2021.1.2
x86-64 icx 2021.2.0
x86-64 icx 2021.3.0
x86-64 icx 2021.4.0
x86-64 icx 2022.0.0
x86-64 icx 2022.1.0
x86-64 icx 2022.2.0
x86-64 icx 2022.2.1
x86-64 icx 2023.0.0
x86-64 icx 2023.1.0
x86-64 icx 2023.2.1
x86-64 icx 2024.0.0
x86-64 icx 2024.1.0
x86-64 icx 2024.2.0
x86-64 icx 2024.2.1
x86-64 icx 2025.0.0
x86-64 icx 2025.0.1
x86-64 icx 2025.0.3
x86-64 icx 2025.0.4
x86-64 icx 2025.1.0
x86-64 icx 2025.1.1
x86-64 icx 2025.2.0
x86-64 icx 2025.2.1
x86-64 icx 2025.2.1
z180-clang 15.0.0
z180-clang 15.0.7
z80-clang 15.0.0
z80-clang 15.0.7
zig c++ 0.10.0
zig c++ 0.11.0
zig c++ 0.12.0
zig c++ 0.12.1
zig c++ 0.13.0
zig c++ 0.14.0
zig c++ 0.14.1
zig c++ 0.15.1
zig c++ 0.6.0
zig c++ 0.7.0
zig c++ 0.7.1
zig c++ 0.8.0
zig c++ 0.9.0
zig c++ trunk
Options
Source code
#include <ctre.hpp> #include <string_view> #include <iostream> auto constexpr input = std::string_view( R"input( eyr:2029 byr:1931 hcl:z cid:128 ecl:amb hgt:150cm iyr:2015 pid:148714704 byr:2013 hgt:70cm pid:76982670 ecl:#4f9a1c hcl:9e724b eyr:1981 iyr:2027 pid:261384974 iyr:2015 hgt:172cm eyr:2020 byr:2001 hcl:#59c2d9 ecl:amb cid:163 eyr:2024 hcl:#b6652a cid:340 byr:1929 ecl:oth iyr:2014 pid:186640193 hgt:193in iyr:2015 eyr:2024 hgt:184cm ecl:blu hcl:#a97842 byr:1959 pid:932817398 iyr:1933 hcl:7c63aa cid:72 eyr:2028 ecl:hzl byr:2009 hgt:164cm pid:104496116 byr:1980 hgt:181cm pid:192793676 hcl:8f6ae6 iyr:2021 eyr:1978 pid:#63f479 hgt:75cm hcl:z iyr:1956 byr:2024 ecl:#051344 byr:2014 pid:159cm hgt:161cm ecl:#b4eef2 iyr:2027 eyr:1933 hcl:743b1a cid:79 hgt:172cm byr:1932 eyr:2020 pid:127319843 hcl:#6b5442 iyr:2017 ecl:brn ecl:gry eyr:2020 byr:1976 pid:093137171 iyr:2012 hgt:178cm hcl:#733820 byr:1933 hcl:#733820 hgt:165cm eyr:2027 iyr:2018 ecl:oth pid:0952910465 iyr:2014 byr:1965 pid:304542033 eyr:2032 ecl:brn hgt:153in cid:259 hcl:z byr:2004 ecl:amb iyr:2013 hcl:#a97842 hgt:68in pid:248926471 eyr:1930 pid:048596900 iyr:2021 byr:2021 eyr:2021 cid:104 hcl:c3c9e0 ecl:hzl hgt:75cm pid:590195280 cid:159 byr:1951 hcl:#ceb3a1 ecl:brn iyr:2012 hgt:189cm eyr:2024 iyr:2015 pid:639647361 hcl:#b6652a hgt:151cm byr:1957 cid:284 ecl:gry eyr:2026 ecl:blu hgt:175cm pid:462959720 hcl:#602927 iyr:2014 byr:1972 eyr:2023 ecl:blu eyr:2023 hgt:175cm pid:090406335 hcl:#b6652a iyr:2012 byr:1921 eyr:2025 hcl:#733820 pid:775468504 ecl:hzl byr:1934 hgt:187cm iyr:2019 ecl:#b35d5b hgt:121 hcl:z iyr:2002 eyr:2034 byr:2014 ecl:hzl byr:2026 hgt:77 iyr:1952 hcl:#a97842 pid:#1461ed eyr:1921 iyr:2019 hgt:171in eyr:2040 pid:788162609 ecl:grn byr:2023 hcl:#efcc98 eyr:2039 hgt:158cm byr:2026 pid:216112069 ecl:blu hcl:#fffffd eyr:2020 pid:496018604 byr:1982 hgt:168cm cid:70 iyr:2016 eyr:2031 iyr:1958 hcl:#c0946f hgt:181in ecl:#f88f2c pid:7896132641 byr:1933 cid:118 eyr:2037 hcl:#cfa07d iyr:2030 ecl:#686f76 hgt:170 iyr:2010 hgt:161cm ecl:grn byr:1958 hcl:#7d3b0c pid:523557068 hcl:ba3af2 pid:157cm eyr:2037 cid:135 ecl:zzz hgt:153 byr:2030 ecl:grn byr:1967 cid:191 iyr:2012 hcl:#866857 pid:822899368 hgt:152cm eyr:2024 iyr:2015 cid:343 hcl:#6b5442 pid:119981062 hgt:67in eyr:2027 ecl:gry byr:2001 pid:#c68245 ecl:blu hgt:107 hcl:74f3fb eyr:1996 iyr:1955 byr:2025 hgt:63cm eyr:1925 iyr:2019 byr:2013 pid:#3ab227 ecl:#e33d1d hcl:#efcc98 byr:1941 eyr:2029 iyr:2011 hgt:159cm hcl:#602927 ecl:brn cid:245 pid:977877701 pid:575539099 eyr:2031 byr:1987 ecl:oth hcl:#cfa07d iyr:2017 hgt:69cm pid:563180951 hgt:153cm ecl:amb iyr:2016 byr:1951 hcl:#341e13 eyr:2029 cid:277 hcl:#623a2f iyr:2011 hgt:171cm byr:1929 ecl:oth eyr:2024 pid:959212059 byr:1943 ecl:#3925f3 hgt:68cm pid:155cm cid:127 eyr:2011 hcl:2a53fd iyr:2030 hgt:160in byr:2014 pid:7846412647 hcl:2d18c8 ecl:#8655df eyr:2034 iyr:2023 byr:1932 hgt:170cm cid:331 eyr:2020 pid:52551410 ecl:gry iyr:2013 hcl:#c6944c hcl:#888785 pid:177cm ecl:oth hgt:160cm eyr:2021 byr:1957 iyr:2013 iyr:2020 pid:6245137 eyr:2027 cid:111 hgt:181cm byr:2024 ecl:gmt hcl:fe8828 pid:648300488 cid:230 hcl:#efcc98 byr:1989 hgt:159cm ecl:gry iyr:2015 eyr:2030 iyr:1929 cid:144 hgt:168in pid:185cm byr:2017 hcl:z eyr:1960 ecl:#d406d2 hcl:3a4933 hgt:155cm pid:337576945 byr:1925 iyr:2014 ecl:brn eyr:2026 pid:170cm cid:291 eyr:2017 iyr:2017 hgt:177cm hcl:z ecl:gmt pid:271148544 hgt:163cm byr:1926 hcl:#fffffd iyr:2013 eyr:2022 hgt:64in iyr:2030 ecl:#15c6b5 eyr:2028 byr:2025 pid:3426144 eyr:1923 byr:1943 hcl:#64d609 iyr:2017 pid:154cm hgt:160cm ecl:brn hcl:#602927 hgt:170cm ecl:utc iyr:1954 pid:370180054 byr:1925 cid:162 eyr:1983 hcl:#888785 byr:1932 hgt:163cm eyr:2026 ecl:grn pid:799844918 eyr:2029 ecl:blu cid:231 hgt:157cm pid:609233861 hcl:#462640 byr:1940 iyr:2012 iyr:2025 byr:2004 pid:#e92a77 eyr:2014 cid:78 ecl:zzz hgt:187in hcl:76be6e eyr:2027 iyr:2012 ecl:brn byr:1955 pid:128923308 cid:313 hgt:156cm hcl:#623a2f hcl:#ceb3a1 hgt:178cm byr:1984 pid:121442385 eyr:2036 iyr:2014 ecl:hzl eyr:2038 ecl:#c6149f iyr:1983 cid:304 hgt:193 byr:2019 hcl:z pid:5871630079 iyr:2028 eyr:2002 hgt:146 hcl:#623a2f pid:390145814 byr:1937 pid:923652966 ecl:amb eyr:2027 hgt:174cm byr:1932 iyr:2014 hcl:#fffffd iyr:2026 cid:202 byr:1995 hcl:69c01a hgt:164cm eyr:2020 ecl:hzl hgt:156cm byr:2004 pid:537532371 hcl:z iyr:1988 eyr:2024 ecl:utc iyr:2018 byr:1924 hcl:#602927 cid:132 pid:947815343 eyr:2030 ecl:grn byr:1978 hcl:#c0946f iyr:2012 hgt:67cm eyr:2032 pid:929470763 ecl:amb eyr:2028 pid:545502229 ecl:gry hcl:#866857 hgt:182cm byr:1964 iyr:2016 hcl:z cid:82 hgt:108 byr:2010 pid:#1650b3 eyr:2020 iyr:2017 ecl:hzl iyr:2018 hgt:61cm ecl:lzr byr:1980 hcl:1d4bc2 cid:306 pid:763925614 eyr:2006 byr:2021 eyr:2029 pid:610596568 ecl:oth hcl:#7d3b0c iyr:2010 cid:83 hgt:156cm cid:181 ecl:hzl hcl:#8d79d2 hgt:192cm byr:1958 iyr:2014 eyr:2026 pid:118367138 byr:1978 eyr:2020 iyr:2025 hgt:176cm ecl:grn hcl:faedc2 hgt:156cm eyr:1989 pid:#7acc45 cid:235 hcl:1332ba ecl:#2b7525 iyr:1950 byr:1943 pid:147647267 hcl:#341e13 ecl:hzl iyr:2019 byr:1975 hgt:153cm eyr:2020 iyr:2026 hgt:170cm ecl:oth byr:2017 pid:047129729 eyr:2024 hcl:#733820 hcl:#fffffd byr:1960 ecl:gry eyr:2023 iyr:2013 hgt:186cm pid:145757697 hgt:64in ecl:amb byr:1930 pid:808797855 iyr:2019 hcl:#b6652a eyr:2022 eyr:2030 hcl:z iyr:2013 hgt:165cm ecl:#5ba775 pid:168306092 byr:1988 eyr:2026 ecl:gry iyr:2020 hcl:#b6652a hgt:177cm byr:1991 pid:780666689 iyr:2020 pid:#d08e64 eyr:2010 hcl:411b04 cid:140 hgt:76cm ecl:grn byr:2005 iyr:1945 pid:973836167 ecl:zzz hcl:z hgt:181in byr:2008 eyr:1993 cid:58 eyr:2024 hgt:159cm byr:1977 ecl:hzl pid:402427328 hcl:#888785 iyr:2012 pid:533381616 byr:2027 eyr:2040 hgt:60cm iyr:2023 hcl:z ecl:gmt pid:229044973 cid:149 hgt:178in eyr:2029 byr:2006 ecl:dne iyr:2012 hcl:bf4bc2 hgt:161cm byr:1973 ecl:oth iyr:2015 hcl:#341e13 pid:658452720 eyr:2024 hcl:#efcc98 hgt:156cm byr:1931 iyr:1997 pid:0548175409 ecl:utc pid:575623915 iyr:2017 eyr:2023 hcl:#733820 byr:1938 ecl:blu hgt:185cm hcl:#55ebaa hgt:157cm ecl:blu byr:1945 pid:946614649 eyr:2020 iyr:2012 hgt:158cm hcl:#b80425 iyr:2017 eyr:2025 ecl:gry byr:1944 pid:838975683 hcl:#41731c iyr:2020 byr:1971 ecl:oth hgt:186cm eyr:2030 pid:495358045 pid:3884291521 eyr:2037 hgt:74cm byr:2003 ecl:hzl iyr:2022 hcl:#888785 cid:124 hgt:175cm cid:340 byr:1921 pid:183491348 iyr:2017 ecl:brn hcl:#602927 eyr:2028 hcl:#cfa07d hgt:161cm byr:2006 eyr:2024 pid:109854634 ecl:xry iyr:2024 ecl:#ec6311 hcl:z iyr:2015 pid:#783693 eyr:1932 cid:271 hgt:82 ecl:grn hgt:164cm hcl:#efcc98 eyr:2020 pid:824236769 byr:1952 iyr:2014 eyr:1964 pid:85558869 byr:2017 hcl:c81d94 iyr:2028 hgt:63cm ecl:#c00640 cid:115 byr:2010 pid:431600716 hcl:z hgt:112 ecl:#3057e9 eyr:2027 iyr:2017 cid:91 byr:2026 eyr:2037 pid:3800489571 ecl:grn cid:91 hcl:94b4d1 hgt:59cm cid:199 byr:2030 iyr:2021 hcl:c55653 hgt:168cm pid:160cm hgt:68cm byr:2025 iyr:2023 eyr:1983 hcl:0004d4 ecl:#19fca6 pid:89901951 hgt:170cm byr:2012 eyr:1981 hcl:c95b58 pid:#d28b3f cid:302 iyr:1953 ecl:#151ea4 hcl:#6b5442 eyr:2024 hgt:161cm cid:210 ecl:#793ac0 pid:480283173 iyr:2019 byr:1967 cid:82 ecl:amb iyr:2017 eyr:2023 byr:1980 hgt:59in hcl:#888785 pid:323524654 hcl:#341e13 hgt:154cm iyr:2015 eyr:2023 byr:1953 ecl:blu pid:872964523 iyr:2019 byr:1945 hcl:#efcc98 hgt:155in ecl:#1608c7 eyr:2030 pid:406045604 ecl:lzr byr:2015 iyr:1938 eyr:2026 hcl:z pid:542894703 hgt:185 eyr:2021 hcl:#cfa07d ecl:hzl hgt:82 iyr:2018 byr:1932 pid:661993261 ecl:brn hcl:#602927 hgt:193cm pid:572216250 byr:1929 eyr:2020 iyr:2010 cid:206 ecl:amb eyr:2025 pid:932260335 byr:1978 iyr:2012 hcl:#cfa07d cid:260 hgt:67in pid:635410614 byr:1948 hgt:156cm hcl:#071bc0 eyr:2026 ecl:grn cid:275 iyr:2014 hcl:#8a4888 byr:1986 iyr:2010 ecl:amb cid:113 pid:974757414 hgt:174cm eyr:2024 byr:1934 ecl:amb iyr:2016 pid:280206549 hgt:176cm eyr:2020 hcl:#fffffd pid:544634927 eyr:2021 hgt:188cm byr:1947 iyr:2020 hcl:#008716 ecl:oth cid:97 eyr:2026 pid:863010622 byr:1978 hcl:#b6652a hgt:157cm cid:323 iyr:2020 ecl:blu cid:105 byr:1926 hcl:#6b5442 pid:049198636 eyr:2026 hgt:75in iyr:2018 ecl:blu eyr:2038 hgt:76cm byr:2020 pid:9036865757 iyr:2025 ecl:#a2c975 hcl:z cid:340 pid:425619875 cid:263 byr:1935 eyr:2028 hgt:192cm iyr:2010 hcl:#a6ddfc ecl:hzl cid:107 hgt:189cm hcl:#733820 ecl:blu eyr:2028 iyr:2020 pid:814895947 cid:96 hgt:74in hcl:z pid:170cm ecl:#0240fd byr:2004 iyr:2013 eyr:1936 ecl:blu eyr:2027 hcl:#341e13 iyr:2020 cid:94 hgt:174cm iyr:2013 ecl:amb eyr:2030 hcl:#b6652a byr:1964 pid:329942894 byr:1995 ecl:hzl eyr:2030 hgt:177cm hcl:#341e13 cid:64 eyr:2027 pid:708191313 ecl:#390609 byr:2022 iyr:2010 cid:292 hgt:129 hcl:#733820 hcl:#733820 ecl:hzl eyr:2030 iyr:2011 hgt:156cm byr:2002 pid:932464949 iyr:1941 byr:2027 ecl:xry eyr:1949 pid:82479270 hgt:175 hcl:z cid:157 byr:1927 pid:708954312 eyr:2028 ecl:oth hgt:167cm hcl:#602927 iyr:2011 cid:125 eyr:2034 iyr:2030 hgt:116 byr:2030 hcl:f773ce pid:#d24ed1 ecl:lzr hcl:#efcc98 byr:1947 pid:423105162 ecl:brn iyr:2019 hgt:154cm eyr:2026 cid:174 iyr:2017 ecl:gry hcl:#341e13 pid:314487906 eyr:2038 hgt:171cm byr:2014 pid:630479640 ecl:brn hgt:163cm iyr:2013 eyr:2028 byr:1998 hcl:#866857 iyr:2013 hcl:z byr:2016 ecl:#43d879 pid:996281170 cid:200 hgt:153 eyr:2030 byr:2023 pid:081908248 iyr:2020 eyr:2035 hgt:175in ecl:grt hcl:30ab42 iyr:2018 byr:1995 eyr:2029 ecl:grn pid:882123182 hgt:62cm hcl:#fffffd byr:1978 hcl:z iyr:1923 ecl:blu eyr:2037 pid:#1f3467 hgt:186cm cid:264 ecl:#ab07c5 iyr:1927 hcl:2d6f9c hgt:74cm byr:2008 pid:874594495 eyr:2035 ecl:lzr hgt:69cm hcl:76854c cid:336 pid:7830555583 iyr:1920 byr:2021 eyr:2038 hgt:160cm byr:2029 ecl:#7f9d1b hcl:z iyr:1975 pid:652466273 eyr:2031 ecl:oth eyr:2027 iyr:2019 pid:544347482 byr:1988 hgt:182cm hcl:#cfa07d hgt:176cm iyr:2016 hcl:ec1dc3 pid:521230755 byr:2030 ecl:amb eyr:2025 pid:005216805 byr:1951 ecl:hzl hcl:#efcc98 eyr:2022 iyr:2016 hgt:154cm byr:1943 hcl:#866857 eyr:1984 hgt:64cm pid:3105984 iyr:1997 ecl:lzr eyr:2024 byr:1931 pid:929699878 hgt:169cm cid:81 hcl:#efcc98 iyr:2011 pid:558972589 hgt:163cm cid:155 eyr:2025 byr:1952 ecl:oth hcl:#c0946f pid:787560595 eyr:2036 hcl:#888785 byr:1999 iyr:1971 ecl:blu hgt:165in pid:032310066 eyr:1926 byr:1954 ecl:brn hcl:41964f iyr:2023 hcl:#733820 pid:563740385 hgt:184cm iyr:1959 ecl:gmt cid:242 byr:1999 pid:4949046383 byr:2011 hcl:fcf63b ecl:hzl hgt:174in iyr:2023 eyr:1939 cid:331 ecl:grt hcl:z eyr:2003 hgt:172in byr:2012 iyr:1954 pid:#9f4663 cid:223 byr:1939 eyr:2025 ecl:oth hgt:161cm iyr:2015 pid:214576789 hcl:#866857 ecl:oth pid:912009529 byr:1968 hgt:161cm hcl:#ceb3a1 eyr:2023 iyr:2017 pid:858541281 hgt:150cm eyr:2021 iyr:2013 ecl:gry hcl:#fffffd byr:1959 ecl:#0024e0 byr:2006 cid:107 iyr:2015 hcl:684416 hgt:94 pid:152cm eyr:2031 byr:1987 hcl:z ecl:gry pid:#246fe1 hgt:65cm eyr:1992 iyr:2020 pid:426999585 ecl:hzl byr:1949 hcl:#888785 hgt:191cm iyr:2020 eyr:2020 byr:1951 hcl:#623a2f cid:308 ecl:hzl hgt:174cm pid:226138254 eyr:2028 iyr:2018 ecl:brn hgt:62in eyr:2020 hcl:#ceb3a1 pid:650916481 byr:1940 iyr:2018 hcl:#efcc98 ecl:brn byr:1940 eyr:2024 pid:#68d3ab hgt:177cm cid:83 iyr:2017 pid:9704738756 hcl:#fffffd eyr:1925 iyr:2019 byr:1929 ecl:blu hgt:191cm ecl:brn hgt:151cm hcl:#c0946f iyr:2018 pid:602505609 eyr:2020 byr:1974 hgt:178cm eyr:2023 byr:1922 iyr:2013 hcl:#fffffd pid:205291054 ecl:blu byr:1985 iyr:2016 hcl:#ceb3a1 hgt:161cm eyr:2030 ecl:amb pid:871809978 iyr:2027 ecl:#d9c9cb hgt:110 eyr:2034 hcl:99d4ee pid:13355969 cid:168 ecl:utc byr:2019 iyr:2016 hgt:173in cid:266 hcl:z eyr:2033 pid:1835189643 pid:364874100 ecl:amb hcl:#6b5442 hgt:184cm iyr:2017 eyr:2026 byr:1920 cid:127 ecl:dne eyr:2020 byr:2018 cid:262 iyr:2010 hgt:60cm pid:95409983 hcl:z eyr:2026 pid:135963889 iyr:2018 hcl:#ceb3a1 ecl:amb hcl:#341e13 eyr:2028 iyr:2014 byr:1978 cid:309 pid:503628987 ecl:oth hgt:159cm hcl:#a97842 pid:171194014 hgt:193cm eyr:2023 byr:1945 ecl:grt iyr:2019 eyr:1967 cid:135 hcl:z ecl:gmt iyr:2024 pid:#a87744 byr:2023 hgt:168cm pid:169cm cid:337 ecl:hzl hcl:#888785 byr:1927 hgt:153cm iyr:2022 eyr:2020 byr:1963 hcl:#fffffd eyr:2021 hgt:62in pid:702188504 iyr:2013 ecl:hzl iyr:2024 ecl:amb hcl:#ceb3a1 eyr:2017 pid:49752568 hgt:179cm byr:1938 byr:2006 ecl:#08021a eyr:2022 pid:520309937 hgt:61in hcl:#ceb3a1 iyr:2013 hgt:150cm hcl:#733820 byr:1971 ecl:zzz cid:347 iyr:2020 eyr:2020 pid:6028818045 byr:2005 hgt:69cm ecl:lzr hcl:z iyr:2009 eyr:2038 pid:79626157 iyr:2020 byr:2015 pid:882923693 hcl:#888785 eyr:2030 ecl:xry hgt:65in hcl:z hgt:187cm pid:4397913655 iyr:1973 eyr:1925 ecl:#93ae1a hgt:169cm iyr:2019 eyr:2023 pid:678937529 ecl:blu byr:1998 hcl:#fffffd cid:87 hcl:#efcc98 ecl:#e56390 iyr:2013 hgt:191in eyr:2027 pid:923358773 byr:1960 hgt:190cm byr:1939 cid:55 eyr:2026 ecl:blu hcl:#623a2f pid:363917612 iyr:2012 pid:177cm hgt:165cm cid:276 eyr:2002 byr:2010 hcl:#7bea4c iyr:2017 ecl:grt byr:2023 eyr:2031 iyr:1987 hgt:172 hcl:z pid:4973557135 ecl:#7517e2 eyr:2036 iyr:1989 ecl:#ef5492 hgt:188in pid:#b50065 hcl:92e9ee byr:2015 pid:873654822 iyr:2016 cid:310 hgt:76in eyr:2029 hcl:#888785 byr:1958 ecl:brn iyr:2013 ecl:amb byr:2024 hgt:166cm cid:221 eyr:2040 pid:358648642 hcl:#733820 hgt:181cm cid:295 ecl:blu eyr:2027 iyr:2016 byr:1932 hcl:#2502ba pid:177357899 pid:154588649 eyr:2028 byr:1945 iyr:2020 ecl:amb cid:220 hgt:189cm hcl:#a97842 iyr:2011 eyr:2030 cid:143 byr:1998 pid:403108989 ecl:oth hcl:#6b5442 hgt:151cm pid:071042426 cid:217 iyr:2017 ecl:grn byr:1989 eyr:2026 hgt:193cm hcl:#7d3b0c eyr:2025 iyr:2025 pid:3942412883 hcl:#cfa07d cid:237 ecl:utc hgt:182 iyr:2012 eyr:1982 byr:2029 pid:8573047090 hgt:159in ecl:#1e0124 hcl:#b6652a hcl:53c64f ecl:gmt iyr:1984 byr:2029 hgt:59cm pid:#106076 eyr:2031 hcl:#733820 iyr:2019 eyr:2031 pid:706963298 hgt:134 byr:2004 byr:2012 cid:161 eyr:2039 ecl:gry hgt:61cm iyr:1949 pid:870113802 hcl:z byr:1961 eyr:2023 pid:353075198 iyr:2020 hcl:#888785 ecl:oth hgt:163cm byr:2001 iyr:2015 hgt:159cm hcl:#623a2f ecl:#3303fc pid:86352609 eyr:2030 pid:392475721 ecl:brn byr:1927 iyr:2014 eyr:2024 hcl:#fffffd hgt:160cm eyr:2022 byr:1979 iyr:2010 pid:974489456 hcl:#efcc98 ecl:grn eyr:2024 hgt:166cm byr:1961 pid:221051556 hcl:#6b5442 iyr:2028 iyr:2010 cid:156 byr:2005 hgt:155cm ecl:amb eyr:1988 hcl:#866857 pid:169cm eyr:2038 byr:1991 pid:#9b82ce iyr:2027 hcl:z cid:278 hgt:59cm ecl:#179d81 ecl:blu hgt:151cm iyr:2013 cid:117 pid:129843687 hcl:#c429e7 byr:1961 eyr:2022 hcl:#602927 byr:1996 pid:507775673 eyr:2020 hgt:153cm ecl:oth cid:251 iyr:2010 hgt:170cm ecl:oth iyr:2010 eyr:2025 hcl:#602927 byr:1983 pid:113809908 hcl:#c0946f pid:172142380 iyr:2017 byr:1926 hgt:190cm eyr:2028 ecl:brn pid:812443511 hcl:#6b5442 eyr:2021 ecl:amb cid:60 iyr:2017 hgt:157cm byr:1926 hgt:177cm ecl:gry eyr:2022 hcl:#888785 pid:570572334 byr:1943 iyr:2017 pid:#967cbc hcl:z byr:2020 ecl:oth eyr:2035 iyr:2015 cid:99 hgt:65cm iyr:2019 pid:285935311 hcl:#4c1ee4 byr:1954 eyr:2028 hgt:157cm ecl:xry eyr:1939 pid:192cm hgt:114 hcl:b97555 byr:2004 iyr:1970 ecl:grn byr:2021 iyr:2030 hcl:z pid:305489303 hgt:61cm eyr:2020 eyr:2036 hgt:179cm pid:#8be5f5 byr:1981 hcl:#cb5848 iyr:2015 iyr:2011 ecl:oth hgt:176cm cid:344 pid:539941547 hcl:#efcc98 eyr:1987 ecl:amb byr:2029 pid:046017350 cid:182 iyr:2011 hcl:z hgt:191cm iyr:2019 byr:1948 eyr:2020 ecl:hzl hgt:176cm hcl:#733820 pid:235101182 ecl:hzl eyr:2029 pid:262843012 hgt:76in hcl:#efcc98 iyr:2015 byr:1931 iyr:2011 ecl:blu hgt:184cm byr:1945 hcl:#c0946f pid:105042852 iyr:2010 pid:485638522 hcl:949a37 eyr:2030 hgt:193cm ecl:gry byr:2021 pid:565896801 eyr:2029 hcl:#fffffd ecl:amb iyr:2016 byr:1977 hgt:170cm byr:1987 hcl:#c0946f pid:931311386 iyr:2010 eyr:2022 eyr:2030 hgt:177cm hcl:#a97842 byr:1978 ecl:hzl pid:358177000 iyr:2014 iyr:2025 pid:3639383157 cid:82 hcl:f2aec0 hgt:179cm eyr:1944 byr:1969 ecl:#e167d3 hgt:107 ecl:gmt iyr:2030 hcl:#866857 byr:2026 eyr:1990 pid:#87773e cid:220 hcl:z iyr:1921 hgt:65cm byr:1998 ecl:#34397f eyr:2035 hcl:44e552 pid:#6f341e ecl:#59aeb1 eyr:1926 hgt:187 iyr:1988 byr:1991 hcl:z hgt:70cm pid:653386115 iyr:1964 byr:2026 cid:103 ecl:#b81c45 eyr:2034 hcl:#623a2f cid:307 pid:204266921 hgt:172cm iyr:2012 ecl:hzl eyr:2021 byr:1984 hgt:192cm byr:1930 pid:39349843 hcl:#866857 iyr:2013 cid:130 ecl:blu eyr:1962 cid:97 eyr:2036 pid:#279c0b ecl:dne hgt:186in iyr:1973 hcl:691266 byr:2026 hgt:185cm hcl:z ecl:grt pid:#562f7a eyr:1986 iyr:2029 ecl:brn hcl:#b6652a eyr:2028 pid:570023672 byr:1988 hgt:162cm iyr:2015 hgt:180in ecl:zzz hcl:5b1477 byr:2024 eyr:2028 pid:#b03174 pid:157cm eyr:1989 hgt:188cm iyr:2015 hcl:3362a9 ecl:gry byr:2027 pid:111584950 byr:1941 ecl:grn iyr:2013 hgt:179cm hcl:#866857 eyr:2024 ecl:#7f4baa iyr:2015 hcl:de1367 eyr:2024 byr:1959 pid:#cf4e78 hgt:60cm byr:2024 eyr:1953 pid:21579220 hgt:179 cid:94 hcl:#a97842 iyr:1977 ecl:xry hgt:179cm eyr:2020 ecl:hzl hcl:#efcc98 pid:905622096 byr:1929 ecl:oth byr:2001 eyr:2008 iyr:2020 hcl:#ceb3a1 pid:244298637 hgt:160cm eyr:2030 byr:1972 hcl:#341e13 ecl:grn iyr:2014 pid:274475554 hgt:71in byr:1938 hcl:z iyr:1956 pid:153cm hgt:62cm ecl:grt eyr:2036 hgt:177cm cid:276 iyr:1921 hcl:19aa96 pid:843799864 eyr:2033 ecl:#812d68 pid:686496844 ecl:brn hcl:#733820 byr:1948 iyr:2010 eyr:2020 hgt:164cm pid:39436322 ecl:blu hcl:25b3d4 hgt:185in iyr:2019 byr:1959 eyr:2022 pid:119603708 hcl:#866857 byr:1983 hgt:157cm iyr:1978 ecl:hzl eyr:1945 cid:331 hcl:z iyr:2017 pid:255988517 byr:2015 eyr:2020 ecl:amb hgt:171 hgt:180cm iyr:2013 ecl:brn hcl:#602927 byr:1943 pid:898265221 eyr:2025 eyr:2024 hgt:163cm pid:892793767 byr:1971 ecl:oth iyr:2013 cid:119 hcl:#02f6b3 byr:1920 cid:221 pid:#7515a7 hgt:160in eyr:1921 iyr:1983 hcl:z byr:2029 hcl:z hgt:75cm eyr:1975 pid:184cm iyr:1992 ecl:dne iyr:1990 hgt:174in eyr:1961 ecl:brn hcl:#a3313e byr:2029 hgt:191cm eyr:2026 iyr:2019 ecl:brn byr:1930 hcl:#7d3b0c cid:174 ecl:amb iyr:2015 hgt:163cm pid:664966673 hcl:#602927 eyr:2026 cid:229 byr:1941 pid:3123244013 eyr:2037 iyr:2022 hcl:103dfa hgt:156cm byr:2027 ecl:gmt cid:195 cid:151 ecl:blu pid:693382940 iyr:2011 byr:1954 hgt:170cm eyr:2030 hcl:#866857 hcl:#341e13 eyr:2023 byr:1948 iyr:2010 pid:607929427 ecl:oth hgt:160cm hcl:#c0946f ecl:brn hgt:189cm cid:116 iyr:2013 pid:277606931 byr:1975 eyr:2027 cid:206 ecl:gry iyr:2010 hcl:#866857 byr:1997 hgt:190cm pid:687577894 eyr:2029 iyr:2015 pid:681485527 byr:1925 hgt:152cm ecl:amb hcl:#341e13 eyr:2030 hcl:#c396d9 hgt:159cm pid:686268817 ecl:brn byr:1983 iyr:2017 eyr:2038 byr:2012 cid:303 iyr:1941 hcl:z ecl:utc pid:203595168 hgt:71cm pid:863355278 hcl:#888785 iyr:2018 byr:1953 eyr:2022 hgt:167cm ecl:amb pid:141244310 eyr:2025 hcl:#733820 ecl:amb hgt:154cm cid:61 iyr:2017 byr:1929 pid:361065637 hcl:#623a2f byr:1964 iyr:2015 eyr:2027 ecl:gry hgt:67in cid:117 ecl:brn iyr:2025 byr:1982 hcl:#ceb3a1 hgt:185cm pid:34652522 cid:275 ecl:#7a4722 eyr:2001 byr:2018 iyr:1995 hgt:105 pid:95250112 hcl:z iyr:2017 ecl:amb hgt:152cm hcl:#733820 cid:57 eyr:2020 pid:701621326 byr:1944 hcl:#18171d ecl:brn iyr:2015 hgt:175cm eyr:2028 pid:311636591 cid:113 byr:1979 ecl:grn hgt:185cm pid:920998407 iyr:2016 byr:1930 eyr:2029 hcl:#7d3b0c iyr:2021 eyr:1931 hcl:z byr:2010 hgt:177in pid:#cfb659 ecl:zzz cid:171 hcl:#888785 iyr:2010 byr:1970 ecl:hzl pid:141430645 hgt:160cm eyr:2026 hgt:172cm ecl:gry pid:428207256 cid:237 hcl:#733820 iyr:2012 eyr:2027 byr:1951 hgt:70cm cid:76 ecl:#c544c3 byr:2019 pid:6133497812 hcl:#efcc98 eyr:2037 iyr:2015 hgt:176in pid:582383714 byr:1980 ecl:amb hcl:08097e iyr:2020 eyr:2021 ecl:oth eyr:2024 hgt:176cm byr:1923 iyr:2014 pid:737058734 hcl:#b6652a cid:203 ecl:amb eyr:2029 hgt:186cm pid:440986981 iyr:2010 hcl:#cfa07d byr:1967 pid:8729818647 hcl:z ecl:#ae70eb cid:168 hgt:161cm iyr:2030 eyr:2020 byr:2022 hcl:#43a092 hgt:165cm byr:1961 pid:026098019 iyr:2019 eyr:2020 ecl:amb cid:154 hgt:192cm eyr:2016 iyr:2030 ecl:brn pid:#8e0762 byr:2020 hgt:175cm ecl:brn byr:1944 pid:553456151 iyr:2016 eyr:2027 hcl:#085f41 ecl:gry byr:1975 eyr:2025 cid:122 pid:111078821 hcl:#b6652a iyr:2015 hgt:151cm hgt:159cm pid:946458516 eyr:2020 hcl:#a97842 byr:1972 iyr:2016 cid:88 ecl:oth eyr:2023 cid:156 byr:1999 hgt:186cm hcl:#fffffd pid:499141155 ecl:grn hcl:#888785 hgt:165cm pid:864544116 ecl:gry byr:1937 iyr:2020 eyr:2026 hgt:155cm iyr:2018 ecl:blu hcl:#a97842 byr:1994 eyr:2024 eyr:2021 iyr:2019 hgt:175cm cid:127 byr:1982 hcl:#888785 ecl:amb eyr:2022 iyr:2011 ecl:blu pid:202081532 hcl:z hgt:177in byr:1923 iyr:2017 cid:213 hcl:#fffffd ecl:hzl hgt:193cm pid:564823661 byr:1966 eyr:2030 hcl:#623a2f iyr:2014 hgt:177cm byr:1950 ecl:amb cid:290 eyr:2025 pid:669369557 hgt:67cm eyr:2028 ecl:brn hcl:411b18 pid:222472243 byr:1981 ecl:gry hcl:#b6652a eyr:2033 iyr:1943 pid:832989613 hgt:167cm byr:1970 cid:172 hcl:#64fbcb eyr:2007 ecl:hzl pid:982450142 hgt:61cm iyr:2019 eyr:2025 hgt:161cm iyr:1962 pid:394421140 ecl:gry cid:209 hcl:#efcc98 byr:2001 )input" ); // https://regex101.com/r/NzXu7r/1 constexpr auto pattern_part1 = ctll::fixed_string{ "(byr|iyr|eyr|hgt|hcl|ecl|pid):(?:[\\w\\d#]+)(?=\\s)|(\\n\\n|$)" }; // https://regex101.com/r/bqBjCb/2 constexpr auto pattern_part2 = ctll::fixed_string{ "(" // byr (Birth Year) - four digits; at least 1920 and at most 2002. "byr:(?:19[2-9]\\d|200[12])" // iyr (Issue Year) - four digits; at least 2010 and at most 2020. "|iyr:(?:201\\d|2020)" // eyr (Expiration Year) - four digits; at least 2020 and at most 2030. "|eyr:(?:202\\d|2030)" // hgt (Height) - a number followed by either cm or in: // If cm, the number must be at least 150 and at most 193. // If in, the number must be at least 59 and at most 76. "|hgt:(?:(?:1[5-8]\\d|19[0-3])cm|(?:59|6\\d|7[0-6])in)" // hcl (Hair Color) - a # followed by exactly six characters 0-9 or a-f. "|hcl:#[\\da-f]{6}" // ecl (Eye Color) - exactly one of: amb blu brn gry grn hzl oth. "|ecl:(?:amb|blu|brn|gry|grn|hzl|oth)" // pid (Passport ID) - a nine-digit number, including leading zeroes. "|pid:\\d{9}" ")(?=\\s)" "|(\\n\\n|$)" }; constexpr int to_flag(std::string_view field) { if (field == "byr") return 0x1 << 0; if (field == "iyr") return 0x1 << 1; if (field == "eyr") return 0x1 << 2; if (field == "hgt") return 0x1 << 3; if (field == "hcl") return 0x1 << 4; if (field == "ecl") return 0x1 << 5; if (field == "pid") return 0x1 << 6; return 0; } constexpr auto required_fields = int{0b1111111}; template <CTRE_REGEX_INPUT_TYPE pattern> constexpr auto solve(std::string_view input) { auto fields = int{}; auto valid_count = int{}; for (auto [all, field, next_passport] : ctre::range<pattern>(input)) { if (next_passport) { if (fields == required_fields) ++valid_count; fields = 0; } else { fields |= to_flag(field.to_view().substr(0,3)); } } return valid_count; } int main() { constexpr auto res = solve<pattern_part2>(input); std::cout << res; return 0; }
Become a Patron
Sponsor on GitHub
Donate via PayPal
Compiler Explorer Shop
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
CE on Bluesky
Statistics
Changelog
Version tree