// File: /workspace/github_cpp_makefile_star2_O2/akitsu-sanae[P]adtpp/src/main.cpp
// Function: main
int main(int argc, const char* argv[]) {
    if (argc == 1) {
        std::cout << parse(std::cin) << std::endl;
    } else if (argc == 2) {
        std::ifstream input{argv[1]};
        std::cout << parse(input) << std::endl;
    } else {
        std::cerr << format("Usage: {} [filename]", argv[0]) << std::endl;
        std::cerr<< "if filename is not given, read from stdin" << std::endl;
        return -1;
    }
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x308, %rsp            # imm = 0x308
movq %rsi, %rbx
cmpl $0x2, %edi
je 0x4b18
cmpl $0x1, %edi
jne 0x4b73
movq 0x44f6(%rip), %rsi      # 0x8fd8
leaq 0x100(%rsp), %rbx
movq %rbx, %rdi
callq 0x4878
movq 0x44c7(%rip), %rdi      # 0x8fc0
movq %rbx, %rsi
callq 0x251e
movq %rax, %rdi
callq 0x20e0
leaq 0x100(%rsp), %rdi
callq 0x4e12
jmp 0x4b6c
movq 0x8(%rbx), %rsi
leaq 0x100(%rsp), %rbx
pushq $0x8
popq %rdx
movq %rbx, %rdi
callq 0x22b0
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
callq 0x4878
movq 0x447d(%rip), %rdi      # 0x8fc0
leaq 0x28(%rsp), %rsi
callq 0x251e
movq %rax, %rdi
callq 0x20e0
leaq 0x28(%rsp), %rdi
callq 0x4e12
leaq 0x100(%rsp), %rdi
callq 0x2060
xorl %eax, %eax
jmp 0x4ce8
leaq 0x1af6(%rip), %rsi      # 0x6670
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x43c4
leaq 0x1781(%rip), %rsi      # 0x6311
leaq 0x8(%rsp), %rdi
xorl %edx, %edx
callq 0x22e0
cmpq $-0x1, %rax
je 0x4cf3
movq %rax, %r14
leaq 0x2(%rax), %rdx
leaq 0x8(%rsp), %rsi
movq 0x8(%rsi), %rcx
leaq 0x28(%rsp), %rdi
callq 0x21c0
leaq 0x100(%rsp), %rdi
callq 0x2110
leaq 0x110(%rsp), %rdi
movq (%rbx), %rsi
callq 0x2190
leaq 0xc0(%rsp), %rdi
leaq 0x8(%rsp), %rsi
xorl %edx, %edx
movq %r14, %rcx
callq 0x21c0
leaq 0x118(%rsp), %rsi
leaq 0xa0(%rsp), %rdi
callq 0x2250
leaq 0xe0(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x4466
leaq 0x80(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x2200
leaq 0x60(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x80(%rsp), %rdx
callq 0x4466
leaq 0x80(%rsp), %rdi
callq 0x20d0
leaq 0xe0(%rsp), %rdi
callq 0x20d0
leaq 0xa0(%rsp), %rdi
callq 0x20d0
leaq 0xc0(%rsp), %rdi
callq 0x20d0
leaq 0x100(%rsp), %rdi
callq 0x2140
leaq 0x28(%rsp), %rdi
callq 0x20d0
movq 0x434c(%rip), %rdi      # 0x8ff0
leaq 0x60(%rsp), %rsi
callq 0x2180
movq %rax, %rdi
callq 0x20e0
leaq 0x60(%rsp), %rdi
callq 0x20d0
leaq 0x8(%rsp), %rdi
callq 0x20d0
movq 0x431f(%rip), %rdi      # 0x8ff0
leaq 0x19ad(%rip), %rsi      # 0x6685
callq 0x2190
movq %rax, %rdi
callq 0x20e0
pushq $-0x1
popq %rax
addq $0x308, %rsp            # imm = 0x308
popq %rbx
popq %r14
retq
pushq $0x1
popq %rdi
callq 0x20f0
leaq 0x4086(%rip), %rsi      # 0x8d88
movq %rax, %rdi
xorl %edx, %edx
callq 0x2280
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x20d0
jmp 0x4d21
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0x20d0
jmp 0x4d33
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x20d0
jmp 0x4d45
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x20d0
jmp 0x4d59
jmp 0x4d56
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
callq 0x2140
leaq 0x28(%rsp), %rdi
jmp 0x4d84
movq %rax, %rbx
jmp 0x4d66
movq %rax, %rbx
jmp 0x4dc6
movq %rax, %rbx
jmp 0x4da7
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x20d0
leaq 0x8(%rsp), %rdi
callq 0x20d0
jmp 0x4dc6
movq %rax, %rbx
jmp 0x4d89
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x4e12
leaq 0x100(%rsp), %rdi
callq 0x2060
jmp 0x4dc6
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
callq 0x4e12
movq %rbx, %rdi
callq 0x2290