// File: TBody[P]atomicpp/atomicpp/ExternalModules/json.hpp
// Function: void nlohmann::detail::from_json<nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer>, std::vector<std::vector<std::vector<double, std::allocator<double>>, std::allocator<std::vector<double, std::allocator<double>>>>, std::allocator<std::vector<std::vector<double, std::allocator<double>>, std::allocator<std::vector<double, std::allocator<double>>>>>>, 0>(nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const&, std::vector<std::vector<std::vector<double, std::allocator<double>>, std::allocator<std::vector<double, std::allocator<double>>>>, std::allocator<std::vector<std::vector<double, std::allocator<double>>, std::allocator<std::vector<double, std::allocator<double>>>>>>&)
void from_json(const BasicJsonType& j, CompatibleArrayType& arr)
{
    if (j.is_null())
    {
        JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
    }

    // when T == BasicJsonType, do not check if value_t is correct
    if (not std::is_same<typename CompatibleArrayType::value_type, BasicJsonType>::value)
    {
        if (not j.is_array())
        {
            JSON_THROW(std::domain_error("type must be array, but is " + j.type_name()));
        }
    }
    from_json_array_impl(j, arr, priority_tag<1> {});
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xe050
testb $0x1, %al
jne 0x1b0f5
jmp 0x1b1b7
movb $0x1, -0x5d(%rbp)
movl $0x10, %edi
callq 0x41b0
movq %rax, -0xb0(%rbp)
movq -0x8(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0xe170
jmp 0x1b119
leaq 0x1d04d(%rip), %rsi     # 0x3816d
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xcd60
jmp 0x1b12f
movq -0xb0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x4460
jmp 0x1b141
movq -0xb0(%rbp), %rdi
movb $0x0, -0x5d(%rbp)
movq 0x33e35(%rip), %rsi     # 0x4ef88
movq 0x33e3e(%rip), %rdx     # 0x4ef98
callq 0x45b0
jmp 0x1b2b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x1b19e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x1b195
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x4220
leaq -0x50(%rbp), %rdi
callq 0x4220
testb $0x1, -0x5d(%rbp)
jne 0x1b1a6
jmp 0x1b1b2
movq -0xb0(%rbp), %rdi
callq 0x42b0
jmp 0x1b2ac
movq -0x8(%rbp), %rdi
callq 0xf3a0
testb $0x1, %al
jne 0x1b296
movb $0x1, -0xa1(%rbp)
movl $0x10, %edi
callq 0x41b0
movq %rax, -0xb8(%rbp)
movq -0x8(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0xe170
jmp 0x1b1f2
leaq 0x1cf74(%rip), %rsi     # 0x3816d
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rdx
callq 0xcd60
jmp 0x1b20b
movq -0xb8(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x4460
jmp 0x1b21d
movq -0xb8(%rbp), %rdi
movb $0x0, -0xa1(%rbp)
movq 0x33d56(%rip), %rsi     # 0x4ef88
movq 0x33d5f(%rip), %rdx     # 0x4ef98
callq 0x45b0
jmp 0x1b2b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x1b27d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x1b271
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x4220
leaq -0xa0(%rbp), %rdi
callq 0x4220
testb $0x1, -0xa1(%rbp)
jne 0x1b288
jmp 0x1b294
movq -0xb8(%rbp), %rdi
callq 0x42b0
jmp 0x1b2ac
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x1b2c0
addq $0xc0, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x45e0
nopw %cs:(%rax,%rax)
nop