// File: /workspace/github_cpp_makefile_star2_O1/Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: operator<<(std::ostream&, TaxiAgency&)
ostream& operator<<(ostream& output, TaxiAgency& A){
    output << rang::fg::blue << "Taxi Agency Details:" << rang::fg::reset << endl;
    output << "{" <<
        "\n\tcapacity : " <<
            "\n\t\tgarage Limit : " << A.GarageLimit <<
            "\n\t\teach Car Limit : " << A.EachCarLimit <<
            "\n\t\tdriver Limit : " << A.DriverLimit <<
            "\n\t\tcustomer Limit : " << A.DriverLimit <<
        "\n\tdriver stats : " <<
        // driver_limit = (driver_onshift + driver_idol) + drvier_vacancy
            "\n\t\tdriver limit : " << A.DriverLimit <<
            "\n\t\tdrivers on shift : " << A.current_shifts.size() <<
            "\n\t\tdrivers IDLE : " << A.driver_db.size() - A.current_shifts.size() <<
            "\n\t\tdriver vacancy : " << A.DriverLimit - A.driver_db.size() <<
        "\n\ttaxies : " <<
            "\n\t\ttotal : " << A.stats["total_taxies"] <<
            "\n\t\tavailable : " << A.stats["total_idol_taxies"] <<
            "\n\t\ton shifts : " << A.stats["taxies on shift"] <<
        "\n\t}" << endl;
    return output;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movl $0x22, %esi
callq 0xf2c6
movq %rax, %r15
leaq 0x9b5d(%rip), %rsi      # 0x1b67f
movl $0x14, %edx
movq %rax, %rdi
callq 0x4320
movq %r15, %rdi
movl $0x27, %esi
callq 0xf2c6
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x42a0
movsbl %al, %esi
movq %r15, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x41f0
leaq 0x9960(%rip), %rsi      # 0x1b4cd
movl $0x1, %edx
movq %rbx, %rdi
callq 0x4320
leaq 0x9b13(%rip), %rsi      # 0x1b694
movl $0xd, %edx
movq %rbx, %rdi
callq 0x4320
leaq 0x9b0d(%rip), %rsi      # 0x1b6a2
movl $0x12, %edx
movq %rbx, %rdi
callq 0x4320
movl 0x7c(%r14), %esi
movq %rbx, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9afd(%rip), %rsi      # 0x1b6b5
movl $0x14, %edx
movq %rax, %rdi
callq 0x4320
movl 0x80(%r14), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9aec(%rip), %rsi      # 0x1b6ca
movl $0x12, %edx
movq %rax, %rdi
callq 0x4320
movl 0x84(%r14), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9ad9(%rip), %rsi      # 0x1b6dd
movl $0x14, %edx
movq %rax, %rdi
callq 0x4320
movl 0x84(%r14), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9ac8(%rip), %rsi      # 0x1b6f2
movl $0x11, %edx
movq %rax, %rdi
callq 0x4320
leaq 0x9ac6(%rip), %rsi      # 0x1b704
movl $0x12, %edx
movq %r15, %rdi
callq 0x4320
movl 0x84(%r14), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x9ab3(%rip), %rsi      # 0x1b717
movl $0x16, %edx
movq %rax, %rdi
callq 0x4320
movq 0x58(%r14), %rsi
movq %r15, %rdi
callq 0x41e0
movq %rax, %r15
leaq 0x9aa7(%rip), %rsi      # 0x1b72e
movl $0x12, %edx
movq %rax, %rdi
callq 0x4320
movq 0x20(%r14), %rax
subq 0x18(%r14), %rax
sarq $0x3, %rax
movabsq $-0xf0f0f0f0f0f0f0f, %rsi # imm = 0xF0F0F0F0F0F0F0F1
imulq %rax, %rsi
subq 0x58(%r14), %rsi
movq %r15, %rdi
callq 0x41e0
movq %rax, %r15
leaq 0x9a7d(%rip), %rsi      # 0x1b741
movl $0x14, %edx
movq %rax, %rdi
callq 0x4320
movslq 0x84(%r14), %rax
movq 0x20(%r14), %rcx
subq 0x18(%r14), %rcx
sarq $0x3, %rcx
movabsq $0xf0f0f0f0f0f0f0f, %rsi # imm = 0xF0F0F0F0F0F0F0F
imulq %rcx, %rsi
addq %rax, %rsi
movq %r15, %rdi
callq 0x41e0
movq %rax, %r15
leaq 0x9a4f(%rip), %rsi      # 0x1b756
movl $0xb, %edx
movq %rax, %rdi
callq 0x4320
leaq 0x9a47(%rip), %rsi      # 0x1b762
movl $0xb, %edx
movq %r15, %rdi
callq 0x4320
addq $0xa0, %r14
leaq -0x78(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x98f4(%rip), %rsi      # 0x1b632
leaq 0x98f9(%rip), %rdx      # 0x1b63e
leaq -0x88(%rbp), %r12
movq %r12, %rdi
callq 0xf39a
movq %r14, %rdi
movq %r12, %rsi
callq 0x11638
movl (%rax), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x99fb(%rip), %rsi      # 0x1b76e
movl $0xf, %edx
movq %rax, %rdi
callq 0x4320
leaq -0x38(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x9881(%rip), %rsi      # 0x1b610
leaq 0x988b(%rip), %rdx      # 0x1b621
leaq -0x48(%rbp), %rdi
callq 0xf39a
movq %r13, %r12
leaq -0x48(%rbp), %rsi
movq %r14, %rdi
callq 0x11638
movl (%rax), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r15
leaq 0x99bc(%rip), %rsi      # 0x1b77e
movl $0xf, %edx
movq %rax, %rdi
callq 0x4320
leaq -0x58(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x99b0(%rip), %rsi      # 0x1b78e
leaq 0x99b8(%rip), %rdx      # 0x1b79d
leaq -0x68(%rbp), %rdi
callq 0xf39a
leaq -0x68(%rbp), %rsi
movq %r14, %rdi
callq 0x11638
movl (%rax), %esi
movq %r15, %rdi
callq 0x4460
movq %rax, %r14
leaq 0x9715(%rip), %rsi      # 0x1b523
movl $0x3, %edx
movq %rax, %rdi
callq 0x4320
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42a0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4030
movq %rax, %rdi
callq 0x41f0
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x11e50
callq 0x4280
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x11e62
callq 0x4280
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x11e73
callq 0x4280
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x11e89
jmp 0x11e8e
movq %rax, %rbx
jmp 0x11ea7
movq %r13, %r12
movq %rax, %rbx
jmp 0x11eb9
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x11ea7
callq 0x4280
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x11eb9
callq 0x4280
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x11eca
callq 0x4280
movq %rbx, %rdi
callq 0x4490