// File: /workspace/github_cpp_makefile_star2_O2/davmac314[P]dinit/build/tools/mconfig-gen.cc
// Function: main
int main(int argc, char **argv)
{
    for (int i = 1; i < argc; i++) {
        parse_arg(argv[i]);
    }

    using namespace std;
    cout << "// This file is auto-generated by mconfig-gen.cc.\n\n";
    cout << "#ifndef DINIT_MCONFIG_H\n";
    cout << "#define DINIT_MCONFIG_H 1\n";

    cout << "\n// Defines\n\n";
    if (vars.find("USE_UTMPX") != vars.end()) {
        cout << "#define USE_UTMPX " << vars["USE_UTMPX"] << "\n";
    }
    if (vars.find("USE_INITGROUPS") != vars.end()) {
        cout << "#define USE_INITGROUPS " << vars["USE_INITGROUPS"] << "\n";
    }
    else {
    	// Default to assuming initgroups(3) is available
    	cout << "#define USE_INITGROUPS 1\n";
    }
    if (vars.find("SUPPORT_CGROUPS") != vars.end()) {
        cout << "#define SUPPORT_CGROUPS " << vars["SUPPORT_CGROUPS"] << "\n";
    }
    if (vars.find("SUPPORT_CAPABILITIES") != vars.end()) {
        cout << "#define SUPPORT_CAPABILITIES " << vars["SUPPORT_CAPABILITIES"] << "\n";
    }
    if (vars.find("SUPPORT_IOPRIO") != vars.end()) {
        cout << "#define SUPPORT_IOPRIO " << vars["SUPPORT_IOPRIO"] << "\n";
    }
    if (vars.find("SUPPORT_OOM_ADJ") != vars.end()) {
        cout << "#define SUPPORT_OOM_ADJ " << vars["SUPPORT_OOM_ADJ"] << "\n";
    }
    if (vars.find("DEFAULT_AUTO_RESTART") != vars.end()) {
        cout << "#define DEFAULT_AUTO_RESTART " << vars["DEFAULT_AUTO_RESTART"] << "\n";
    }

    cout << "\n// Constants\n";
    cout << "\nconstexpr static char DINIT_VERSION[] = " << stringify(vars["VERSION"]) << ";\n";
    cout << "constexpr static char SYSCONTROLSOCKET[] = " << stringify(vars["SYSCONTROLSOCKET"]) << ";\n";
    cout << "constexpr static char SBINDIR[] = " << stringify(vars["SBINDIR"]) << ";\n";
    cout << "constexpr static char SHUTDOWN_PREFIX[] = " << stringify(vars["SHUTDOWN_PREFIX"]) << ";\n";

    if (vars.find("DEFAULT_START_TIMEOUT") != vars.end()) {
        cout << "constexpr static unsigned DEFAULT_START_TIMEOUT = " << vars["DEFAULT_START_TIMEOUT"] << ";\n";
    }
    else {
        cout << "constexpr static unsigned DEFAULT_START_TIMEOUT = 60;\n";
    }

    if (vars.find("DEFAULT_STOP_TIMEOUT") != vars.end()) {
        cout << "constexpr static unsigned DEFAULT_STOP_TIMEOUT = " << vars["DEFAULT_STOP_TIMEOUT"] << ";\n";
    }
    else {
        cout << "constexpr static unsigned DEFAULT_STOP_TIMEOUT = 10;\n";
    }

    cout << "\n#endif // DINIT_MCONFIG_H\n";
    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf0, %rsp
movq %rsi, %rbx
movslq %edi, %r12
pushq $0x1
popq %r13
leaq 0xd0(%rsp), %r14
leaq 0x10(%rsp), %r15
cmpq %r12, %r13
jge 0x24ff
movq (%rbx,%r13,8), %rsi
movq %r14, %rdi
movq %r15, %rdx
callq 0x2fd8
movq %r14, %rdi
callq 0x23ac
movq %r14, %rdi
callq 0x2228
incq %r13
jmp 0x24d6
movq 0x4ad2(%rip), %rbx      # 0x6fd8
leaq 0x1b13(%rip), %rsi      # 0x4020
movq %rbx, %rdi
callq 0x2120
leaq 0x1b38(%rip), %rsi      # 0x4054
movq %rbx, %rdi
callq 0x2120
leaq 0x1b42(%rip), %rsi      # 0x406d
movq %rbx, %rdi
callq 0x2120
leaq 0x1b4e(%rip), %rsi      # 0x4088
movq %rbx, %rdi
callq 0x2120
leaq 0x1b4d(%rip), %rsi      # 0x4096
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4bd9(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
testq %rbx, %rbx
je 0x25dc
movq 0x4a56(%rip), %rdi      # 0x6fd8
leaq 0x1b17(%rip), %rsi      # 0x40a0
callq 0x2120
movq %rax, %rbx
leaq 0x1afe(%rip), %rsi      # 0x4096
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4b8a(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x1a88(%rip), %rsi      # 0x4052
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x1ad0(%rip), %rsi      # 0x40b3
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4b3f(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
movq 0x49c1(%rip), %rdi      # 0x6fd8
testq %rbx, %rbx
je 0x2678
leaq 0x1a9f(%rip), %rsi      # 0x40c2
callq 0x2120
movq %rax, %rbx
leaq 0x1a81(%rip), %rsi      # 0x40b3
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4af0(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x19ee(%rip), %rsi      # 0x4052
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
jmp 0x2684
leaq 0x1a5b(%rip), %rsi      # 0x40da
callq 0x2120
leaq 0x1a69(%rip), %rsi      # 0x40f4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4a97(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
testq %rbx, %rbx
je 0x271e
movq 0x4914(%rip), %rdi      # 0x6fd8
leaq 0x1a39(%rip), %rsi      # 0x4104
callq 0x2120
movq %rax, %rbx
leaq 0x1a1a(%rip), %rsi      # 0x40f4
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4a48(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x1946(%rip), %rsi      # 0x4052
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x19f8(%rip), %rsi      # 0x411d
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x49fd(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
testq %rbx, %rbx
je 0x27b8
movq 0x487a(%rip), %rdi      # 0x6fd8
leaq 0x19cd(%rip), %rsi      # 0x4132
callq 0x2120
movq %rax, %rbx
leaq 0x19a9(%rip), %rsi      # 0x411d
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x49ae(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x18ac(%rip), %rsi      # 0x4052
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x1991(%rip), %rsi      # 0x4150
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4963(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
testq %rbx, %rbx
je 0x2852
movq 0x47e0(%rip), %rdi      # 0x6fd8
leaq 0x1960(%rip), %rsi      # 0x415f
callq 0x2120
movq %rax, %rbx
leaq 0x1942(%rip), %rsi      # 0x4150
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4914(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x1812(%rip), %rsi      # 0x4052
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x191e(%rip), %rsi      # 0x4177
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x48c9(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
testq %rbx, %rbx
je 0x28ec
movq 0x4746(%rip), %rdi      # 0x6fd8
leaq 0x18ee(%rip), %rsi      # 0x4187
callq 0x2120
movq %rax, %rbx
leaq 0x18cf(%rip), %rsi      # 0x4177
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x487a(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x1778(%rip), %rsi      # 0x4052
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x18ad(%rip), %rsi      # 0x41a0
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x482f(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
testq %rbx, %rbx
je 0x2986
movq 0x46ac(%rip), %rdi      # 0x6fd8
leaq 0x1882(%rip), %rsi      # 0x41b5
callq 0x2120
movq %rax, %rbx
leaq 0x185e(%rip), %rsi      # 0x41a0
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x47e0(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x16de(%rip), %rsi      # 0x4052
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
movq 0x464b(%rip), %rbx      # 0x6fd8
leaq 0x183f(%rip), %rsi      # 0x41d3
movq %rbx, %rdi
callq 0x2120
leaq 0x183f(%rip), %rsi      # 0x41e2
movq %rbx, %rdi
callq 0x2120
movq %rax, %rbx
leaq 0x1857(%rip), %rsi      # 0x420c
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x2fd8
leaq 0x476d(%rip), %rdi      # 0x7138
leaq 0x30(%rsp), %rsi
callq 0x3604
leaq 0xb0(%rsp), %rdi
movq %rax, %rsi
callq 0x2180
leaq 0x10(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x2eb1
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x2110
leaq 0x19a6(%rip), %rsi      # 0x43b1
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0xb0(%rsp), %rdi
callq 0x2228
leaq 0x30(%rsp), %rdi
callq 0x2228
movq 0x459d(%rip), %rdi      # 0x6fd8
leaq 0x17d2(%rip), %rsi      # 0x4214
callq 0x2120
movq %rax, %rbx
leaq 0x17ef(%rip), %rsi      # 0x4240
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x2fd8
leaq 0x46d1(%rip), %rdi      # 0x7138
leaq 0x30(%rsp), %rsi
callq 0x3604
leaq 0x90(%rsp), %rdi
movq %rax, %rsi
callq 0x2180
leaq 0x10(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x2eb1
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x2110
leaq 0x190a(%rip), %rsi      # 0x43b1
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x90(%rsp), %rdi
callq 0x2228
leaq 0x30(%rsp), %rdi
callq 0x2228
movq 0x4501(%rip), %rdi      # 0x6fd8
leaq 0x1773(%rip), %rsi      # 0x4251
callq 0x2120
movq %rax, %rbx
leaq 0x1787(%rip), %rsi      # 0x4274
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x2fd8
leaq 0x4635(%rip), %rdi      # 0x7138
leaq 0x30(%rsp), %rsi
callq 0x3604
leaq 0x70(%rsp), %rdi
movq %rax, %rsi
callq 0x2180
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x2eb1
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x2110
leaq 0x1874(%rip), %rsi      # 0x43b1
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x70(%rsp), %rdi
callq 0x2228
leaq 0x30(%rsp), %rdi
callq 0x2228
movq 0x446e(%rip), %rdi      # 0x6fd8
leaq 0x170b(%rip), %rsi      # 0x427c
callq 0x2120
movq %rax, %rbx
leaq 0x1727(%rip), %rsi      # 0x42a7
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x2fd8
leaq 0x45a2(%rip), %rdi      # 0x7138
leaq 0x30(%rsp), %rsi
callq 0x3604
leaq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x2180
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x2eb1
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x2110
leaq 0x17e1(%rip), %rsi      # 0x43b1
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x50(%rsp), %rdi
callq 0x2228
leaq 0x30(%rsp), %rdi
callq 0x2228
leaq 0x16ba(%rip), %rsi      # 0x42b7
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x4525(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
movq 0x43a7(%rip), %rdi      # 0x6fd8
testq %rbx, %rbx
je 0x2c92
leaq 0x1690(%rip), %rsi      # 0x42cd
callq 0x2120
movq %rax, %rbx
leaq 0x166b(%rip), %rsi      # 0x42b7
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x44d6(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x1733(%rip), %rsi      # 0x43b1
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
jmp 0x2c9e
leaq 0x1667(%rip), %rsi      # 0x4300
callq 0x2120
leaq 0x1692(%rip), %rsi      # 0x4337
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x447d(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x35d6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
movq 0x42ff(%rip), %rdi      # 0x6fd8
testq %rbx, %rbx
je 0x2d3a
leaq 0x1667(%rip), %rsi      # 0x434c
callq 0x2120
movq %rax, %rbx
leaq 0x1643(%rip), %rsi      # 0x4337
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x2fd8
leaq 0x442e(%rip), %rdi      # 0x7138
leaq 0x10(%rsp), %rsi
callq 0x3604
movq %rbx, %rdi
movq %rax, %rsi
callq 0x2110
leaq 0x168b(%rip), %rsi      # 0x43b1
movq %rax, %rdi
callq 0x2120
leaq 0x10(%rsp), %rdi
callq 0x2228
jmp 0x2d46
leaq 0x163d(%rip), %rsi      # 0x437e
callq 0x2120
movq 0x428b(%rip), %rdi      # 0x6fd8
leaq 0x1660(%rip), %rsi      # 0x43b4
callq 0x2120
xorl %eax, %eax
addq $0xf0, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x2ea6
jmp 0x2ea6
jmp 0x2ea6
jmp 0x2ea6
jmp 0x2ea6
jmp 0x2ea6
jmp 0x2ea6
jmp 0x2ea6
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
movq %rax, %rbx
jmp 0x2e36
jmp 0x2ea6
movq %rax, %rbx
jmp 0x2e4c
jmp 0x2ea6
movq %rax, %rbx
jmp 0x2e62
jmp 0x2ea6
movq %rax, %rbx
jmp 0x2e7b
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2ea6
jmp 0x2e1f
jmp 0x2e1f
jmp 0x2e1f
jmp 0x2e1f
jmp 0x2e1f
jmp 0x2e1f
jmp 0x2e1f
jmp 0x2e1f
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x2e9f
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x50(%rsp), %rdi
jmp 0x2e83
jmp 0x2e8a
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x70(%rsp), %rdi
jmp 0x2e83
jmp 0x2e8a
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0x90(%rsp), %rdi
jmp 0x2e83
jmp 0x2e8a
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2228
leaq 0xb0(%rsp), %rdi
callq 0x2228
jmp 0x2e8d
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
jmp 0x2e9f
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0x2228
jmp 0x2ea9
movq %rax, %rbx
movq %rbx, %rdi
callq 0x21e0