// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./src/config.h
// Function: ConfigManager::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void load(std::string s){
		std::ifstream ifs(s);
		std::string line;

		std::string cur_space = "";
		std::stack<std::string> stack_space;

		while(getline(ifs, line)){
			line = trim(line);
			
			if(line.empty()) continue;
			if(line[0] == '#') continue;

			std::stringstream ss(line);

			std::vector<std::string> v;
			std::string tmp;

			while(getline(ss, tmp, ' ')){
				tmp = trim(tmp);
				// tmp = cc_replace(tmp, "\t", "");
				if(!tmp.empty()) v.push_back(tmp);
			}

			if(v.size() > 1 && v[1] == "{"){
				stack_space.push(v[0]);
				cur_space += (v[0] + "::");
				continue;
			}

			if(line == "}"){
				cur_space = cur_space.substr(0, cur_space.size() - 2 - stack_space.top().size());
				// std::cout << cur_space << std::endl;
				stack_space.pop();
				continue;
			}

			if(v.size() < 2) continue;
						// std::cout << ";" << line << ";" << std::endl;

			std::string val = v[1];
			std::string key = cur_space + v[0];

			// std::cout << key << ",'" << v[0] << "'" << val << std::endl;

			// std::string alias = "dummy";
			// if(v.size() == 4 && v[2] == "alias") alias = cur_space + v[3];

			if((val[0] == '\'' && val[val.size() - 1] == '\'') || 
				(val[0] == '"' && val[val.size() - 1] == '"'))
			{
				configs_str[key] = val.substr(1, val.size() - 2);
				// configs_str[alias] = configs_str[key];
			}
			else if(val == "on" || val == "off"){
				configs_bool[key] = (val == "on");
				// configs_bool[alias] = configs_bool[key];
			}
			else{
				configs_int[key] = atol(val.c_str());
				// configs_int[alias] = configs_int[key];
			}

		}

		if(!stack_space.empty()) throw std::logic_error("Incorrect namespaces: " + stack_space.top());
	}

// Assembly:
subq $0x658, %rsp            # imm = 0x658
movq %rdi, 0x650(%rsp)
movq %rsi, 0x648(%rsp)
movq 0x650(%rsp), %rax
movq %rax, 0xb8(%rsp)
leaq 0x440(%rsp), %rdi
movl $0x8, %edx
callq 0xdd50
leaq 0x420(%rsp), %rdi
callq 0xd480
leaq 0x3ff(%rsp), %rdi
movq %rdi, 0xc0(%rsp)
callq 0xdc30
movq 0xc0(%rsp), %rdx
leaq 0xa1281(%rip), %rsi     # 0xc5b4b
leaq 0x400(%rsp), %rdi
callq 0xdad0
jmp 0x248d9
leaq 0x3ff(%rsp), %rdi
callq 0xdf30
leaq 0x398(%rsp), %rdi
callq 0x35180
jmp 0x248f5
jmp 0x248f7
leaq 0x440(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xd6d0
movq %rax, 0xb0(%rsp)
jmp 0x24916
movq 0xb0(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xd4c0
movb %al, 0xaf(%rsp)
jmp 0x24936
movb 0xaf(%rsp), %al
testb $0x1, %al
jne 0x24946
jmp 0x25084
leaq 0x378(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0x351b0
jmp 0x2495d
leaq 0x420(%rsp), %rdi
leaq 0x378(%rsp), %rsi
callq 0xd6f0
leaq 0x378(%rsp), %rdi
callq 0xdf50
leaq 0x420(%rsp), %rdi
callq 0xd3f0
testb $0x1, %al
jne 0x24992
jmp 0x249ef
jmp 0x248f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x3ff(%rsp), %rdi
callq 0xdf30
jmp 0x251c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x251b8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x251ab
xorl %eax, %eax
movl %eax, %esi
leaq 0x420(%rsp), %rdi
callq 0xde40
movq %rax, 0xa0(%rsp)
jmp 0x24a0a
movq 0xa0(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x24a1f
jmp 0x248f7
movl $0x10, %edi
movl $0x8, %esi
callq 0x35270
movl %eax, 0x9c(%rsp)
jmp 0x24a37
movl 0x9c(%rsp), %edx
leaq 0x1f0(%rsp), %rdi
leaq 0x420(%rsp), %rsi
callq 0xdf20
jmp 0x24a55
leaq 0x1d8(%rsp), %rdi
callq 0x14d40
leaq 0x1b8(%rsp), %rdi
callq 0xd480
leaq 0x1f0(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
movl $0x20, %edx
callq 0xd030
movq %rax, 0x90(%rsp)
jmp 0x24a93
movq 0x90(%rsp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xd4c0
movb %al, 0x8f(%rsp)
jmp 0x24ab3
movb 0x8f(%rsp), %al
testb $0x1, %al
jne 0x24ac3
jmp 0x24b44
leaq 0x198(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x351b0
jmp 0x24ada
leaq 0x1b8(%rsp), %rdi
leaq 0x198(%rsp), %rsi
callq 0xd6f0
leaq 0x198(%rsp), %rdi
callq 0xdf50
leaq 0x1b8(%rsp), %rdi
callq 0xd3f0
testb $0x1, %al
jne 0x24b3f
leaq 0x1d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x35290
jmp 0x24b24
jmp 0x24b3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x25058
jmp 0x24a6f
leaq 0x1d8(%rsp), %rdi
callq 0x148f0
cmpq $0x1, %rax
jbe 0x24c3c
leaq 0x1d8(%rsp), %rdi
movl $0x1, %esi
callq 0x14910
movq %rax, %rdi
leaq 0xa2065(%rip), %rsi     # 0xc6bdc
callq 0x19c90
movb %al, 0x8e(%rsp)
jmp 0x24b85
movb 0x8e(%rsp), %al
testb $0x1, %al
jne 0x24b95
jmp 0x24c3c
xorl %eax, %eax
movl %eax, %esi
leaq 0x1d8(%rsp), %rdi
callq 0x14910
movq %rax, %rsi
leaq 0x398(%rsp), %rdi
callq 0x35300
jmp 0x24bb8
xorl %eax, %eax
movl %eax, %esi
leaq 0x1d8(%rsp), %rdi
callq 0x14910
movq %rax, %rsi
leaq 0x9b69c(%rip), %rdx     # 0xc026f
leaq 0x178(%rsp), %rdi
callq 0x23d70
jmp 0x24be2
leaq 0x400(%rsp), %rdi
leaq 0x178(%rsp), %rsi
callq 0xd120
jmp 0x24bf9
leaq 0x178(%rsp), %rdi
callq 0xdf50
movl $0x2, 0x174(%rsp)
jmp 0x25000
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0x178(%rsp), %rdi
callq 0xdf50
jmp 0x25058
leaq 0x9ee86(%rip), %rsi     # 0xc3ac9
leaq 0x420(%rsp), %rdi
callq 0x19c90
movb %al, 0x8d(%rsp)
jmp 0x24c59
movb 0x8d(%rsp), %al
testb $0x1, %al
jne 0x24c69
jmp 0x24d09
leaq 0x400(%rsp), %rdi
callq 0xd410
addq $-0x2, %rax
movq %rax, 0x78(%rsp)
leaq 0x398(%rsp), %rdi
callq 0x35330
movq %rax, 0x80(%rsp)
jmp 0x24c96
movq 0x80(%rsp), %rdi
callq 0xd410
movq 0x78(%rsp), %rcx
subq %rax, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq 0x150(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0xdca0
jmp 0x24cc6
leaq 0x400(%rsp), %rdi
leaq 0x150(%rsp), %rsi
movq %rsi, 0x70(%rsp)
callq 0xd6f0
movq 0x70(%rsp), %rdi
callq 0xdf50
leaq 0x398(%rsp), %rdi
callq 0x35340
jmp 0x24cf9
movl $0x2, 0x174(%rsp)
jmp 0x25000
leaq 0x1d8(%rsp), %rdi
callq 0x148f0
cmpq $0x2, %rax
jae 0x24d2c
movl $0x2, 0x174(%rsp)
jmp 0x25000
leaq 0x1d8(%rsp), %rdi
movl $0x1, %esi
callq 0x14910
movq %rax, %rsi
leaq 0x130(%rsp), %rdi
callq 0xd1b0
jmp 0x24d50
xorl %eax, %eax
movl %eax, %esi
leaq 0x1d8(%rsp), %rdi
callq 0x14910
movq %rax, %rdx
leaq 0x110(%rsp), %rdi
leaq 0x400(%rsp), %rsi
callq 0x35350
jmp 0x24d7b
xorl %eax, %eax
movl %eax, %esi
leaq 0x130(%rsp), %rdi
callq 0xde40
movq %rax, 0x68(%rsp)
jmp 0x24d93
movq 0x68(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x27, %eax
jne 0x24dd6
leaq 0x130(%rsp), %rdi
movq %rdi, 0x58(%rsp)
callq 0xd410
movq 0x58(%rsp), %rdi
movq %rax, %rsi
decq %rsi
callq 0xde40
movq %rax, 0x60(%rsp)
jmp 0x24dc9
movq 0x60(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x27, %eax
je 0x24e39
xorl %eax, %eax
movl %eax, %esi
leaq 0x130(%rsp), %rdi
callq 0xde40
movq %rax, 0x50(%rsp)
jmp 0x24dee
movq 0x50(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0x24f03
leaq 0x130(%rsp), %rdi
movq %rdi, 0x40(%rsp)
callq 0xd410
movq 0x40(%rsp), %rdi
movq %rax, %rsi
decq %rsi
callq 0xde40
movq %rax, 0x48(%rsp)
jmp 0x24e28
movq 0x48(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0x24f03
leaq 0x130(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xd410
movq 0x38(%rsp), %rsi
movq %rax, %rcx
addq $-0x2, %rcx
leaq 0xf0(%rsp), %rdi
movl $0x1, %edx
callq 0xdca0
jmp 0x24e6b
movq 0xb8(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x160e0
movq %rax, 0x30(%rsp)
jmp 0x24e87
movq 0x30(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0xd6f0
leaq 0xf0(%rsp), %rdi
callq 0xdf50
jmp 0x24fdb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x2504b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x2503e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0xf0(%rsp), %rdi
callq 0xdf50
jmp 0x2503e
leaq 0xa22f1(%rip), %rsi     # 0xc71fb
leaq 0x130(%rsp), %rdi
callq 0x19c90
movb %al, 0x2f(%rsp)
jmp 0x24f1d
movb 0x2f(%rsp), %al
testb $0x1, %al
jne 0x24f4b
jmp 0x24f27
leaq 0x9acd3(%rip), %rsi     # 0xbfc01
leaq 0x130(%rsp), %rdi
callq 0x19c90
movb %al, 0x2e(%rsp)
jmp 0x24f41
movb 0x2e(%rsp), %al
testb $0x1, %al
jne 0x24f4b
jmp 0x24f95
leaq 0xa22a9(%rip), %rsi     # 0xc71fb
leaq 0x130(%rsp), %rdi
callq 0x19c90
movb %al, 0x2d(%rsp)
jmp 0x24f65
movq 0xb8(%rsp), %rdi
addq $0x70, %rdi
leaq 0x110(%rsp), %rsi
callq 0x17820
movq %rax, 0x20(%rsp)
jmp 0x24f85
movq 0x20(%rsp), %rax
movb 0x2d(%rsp), %cl
andb $0x1, %cl
movb %cl, (%rax)
jmp 0x24fd9
leaq 0x130(%rsp), %rdi
callq 0xd190
movq %rax, %rdi
callq 0xd840
movq 0xb8(%rsp), %rdi
movl %eax, 0x14(%rsp)
addq $0x38, %rdi
leaq 0x110(%rsp), %rsi
callq 0x177f0
movq %rax, 0x18(%rsp)
jmp 0x24fce
movq 0x18(%rsp), %rax
movl 0x14(%rsp), %ecx
movl %ecx, (%rax)
jmp 0x24fdb
leaq 0x110(%rsp), %rdi
callq 0xdf50
leaq 0x130(%rsp), %rdi
callq 0xdf50
movl $0x0, 0x174(%rsp)
leaq 0x1b8(%rsp), %rdi
callq 0xdf50
leaq 0x1d8(%rsp), %rdi
callq 0x14930
leaq 0x1f0(%rsp), %rdi
callq 0xd510
movl 0x174(%rsp), %eax
testl %eax, %eax
je 0x25039
jmp 0x25034
jmp 0x248f7
jmp 0x248f7
leaq 0x110(%rsp), %rdi
callq 0xdf50
leaq 0x130(%rsp), %rdi
callq 0xdf50
leaq 0x1b8(%rsp), %rdi
callq 0xdf50
leaq 0x1d8(%rsp), %rdi
callq 0x14930
leaq 0x1f0(%rsp), %rdi
callq 0xd510
jmp 0x251ab
leaq 0x398(%rsp), %rdi
callq 0x353e0
movb %al, 0x13(%rsp)
jmp 0x25097
movb 0x13(%rsp), %al
testb $0x1, %al
jne 0x2516f
jmp 0x250a5
movb $0x1, 0xcf(%rsp)
movl $0x10, %edi
callq 0xd530
movq %rax, (%rsp)
leaq 0x398(%rsp), %rdi
callq 0x35330
movq %rax, 0x8(%rsp)
jmp 0x250cf
movq 0x8(%rsp), %rdx
leaq 0x9ab69(%rip), %rsi     # 0xbfc44
leaq 0xd0(%rsp), %rdi
callq 0x149e0
jmp 0x250ea
movq (%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xd200
jmp 0x250fd
movq (%rsp), %rdi
movb $0x0, 0xcf(%rsp)
movq 0xc8ed8(%rip), %rsi     # 0xedfe8
movq 0xc8ec1(%rip), %rdx     # 0xedfd8
callq 0xd850
jmp 0x251ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
jmp 0x25158
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3f0(%rsp)
movl %eax, 0x3ec(%rsp)
leaq 0xd0(%rsp), %rdi
callq 0xdf50
testb $0x1, 0xcf(%rsp)
jne 0x25164
jmp 0x2516d
movq (%rsp), %rdi
callq 0xdb30
jmp 0x251ab
leaq 0x398(%rsp), %rdi
callq 0x35400
leaq 0x400(%rsp), %rdi
callq 0xdf50
leaq 0x420(%rsp), %rdi
callq 0xdf50
leaq 0x440(%rsp), %rdi
callq 0xd080
addq $0x658, %rsp            # imm = 0x658
retq
leaq 0x398(%rsp), %rdi
callq 0x35400
leaq 0x400(%rsp), %rdi
callq 0xdf50
leaq 0x420(%rsp), %rdi
callq 0xdf50
leaq 0x440(%rsp), %rdi
callq 0xd080
movq 0x3f0(%rsp), %rdi
callq 0xd8a0
nopl (%rax)