#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, ...);
void usage(void) {
  printf("%sc%so%sl%so%sr%s v%0.2f - copyright (c) 2001 "
         "Moshe Jacobson <moshe@runslinux.net>\n",
         "\033[1;31m", "\033[1;33m", "\033[1;32m", "\033[1;34m", "\033[1;35m",
         "\033[0m", 1.1);
  printf("This program is free software released under the GPL. "
         "See COPYING for info.\n\n");
  printf("Usage:\n\n   %scolor%s [lt]%sfgcolor%s [%sbgcolor%s]\n", "\033[1m",
         "\033[0m", "\033[4m", "\033[0m", "\033[4m", "\033[0m");
  printf("   %scolor%s [ bd | ul | off ] %s\n   color%s --list\n\n", "\033[1m",
         "\033[0m", "\033[1m", "\033[0m");
  printf("   %sfgcolor%s and %sbgcolor%s are one of:\n", "\033[4m", "\033[0m",
         "\033[4m", "\033[0m");
  printf("      %sred %sgreen %syellow %sblue %smagenta %scyan %swhite%s.\n",
         "\033[1;31m", "\033[1;32m", "\033[1;33m", "\033[1;34m", "\033[1;35m",
         "\033[1;36m", "\033[1;37m", "\033[0m");
  printf("   Preceed the foreground color with %slt%s to use a light "
         "color.\n",
         "\033[1m", "\033[0m");
  printf("   %scolor ul%s and %scolor bd%s turn on %sunderline%s and "
         "%sbold%s, respectively.\n",
         "\033[1m", "\033[0m", "\033[1m", "\033[0m", "\033[4m", "\033[0m",
         "\033[1m", "\033[0m");
  printf("   %scolor off%s turns off any coloring and resets "
         "to default colors.\n",
         "\033[1m", "\033[0m");
  printf("   %scolor --list%s shows all the possible color combinations "
         "visually.\n\n",
         "\033[1m", "\033[0m");
  printf("Example:\n\n");
  printf("   This program can be used from shellscripts as a "
         "convenience to allow for\n"
         "   ansi colored text output. Simply invoke it with command "
         "substitution. For\n"
         "   example, in a POSIX compliant shell such as bash or ksh, "
         "you would do:\n\n"
         "      echo \"$(color ltyellow blue)Hi there!$(color off)\"\n\n"
         "   to see %sHi there!%s\n\n",
         "\033[1;33m"
         "\033[0;44m",
         "\033[0m");
  return;
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
lea    0xee9(%rip),%rdi
lea    0xf36(%rip),%rsi
lea    0xf37(%rip),%rdx
lea    0xf38(%rip),%rcx
lea    0xf39(%rip),%r8
lea    0xf3a(%rip),%r9
lea    0xf3b(%rip),%rax
movsd  0xeaf(%rip),%xmm0
mov    %rax,(%rsp)
mov    $0x1,%al
call   1030 <printf@plt>
lea    0xf26(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf66(%rip),%rdi
lea    0xf93(%rip),%rsi
lea    0xf05(%rip),%rax
lea    0xf8a(%rip),%r9
mov    %rax,%rdx
mov    %r9,%rcx
mov    %rax,%r8
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf74(%rip),%rdi
lea    0xf63(%rip),%rcx
lea    0xed5(%rip),%r8
mov    %rcx,%rsi
mov    %r8,%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf88(%rip),%rdi
lea    0xf46(%rip),%rcx
lea    0xeb3(%rip),%r8
mov    %rcx,%rsi
mov    %r8,%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf92(%rip),%rdi
lea    0xe70(%rip),%rsi
lea    0xe79(%rip),%rdx
lea    0xe6a(%rip),%rcx
lea    0xe73(%rip),%r8
lea    0xe74(%rip),%r9
lea    0xfa9(%rip),%r11
lea    0xfaa(%rip),%r10
lea    0xe67(%rip),%rax
mov    %r11,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf8f(%rip),%rdi
lea    0xecb(%rip),%rsi
lea    0xe3d(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfb6(%rip),%rdi
lea    0xeaf(%rip),%r10
lea    0xe21(%rip),%rax
lea    0xea6(%rip),%r9
mov    %r10,%rsi
mov    %rax,%rdx
mov    %r10,%rcx
mov    %rax,%r8
mov    %rax,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfcd(%rip),%rdi
lea    0xe72(%rip),%rsi
lea    0xde4(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xff8(%rip),%rdi
lea    0xe56(%rip),%rsi
lea    0xdc8(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1026(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1023(%rip),%rdi
lea    0x1154(%rip),%rsi
lea    0xd9e(%rip),%rdx
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
sub    $0x8,%rsp
lea    0xf4e(%rip),%rbx
lea    0xecb(%rip),%rdi
lea    0xf18(%rip),%r13
lea    0xf19(%rip),%rdx
lea    0xf1a(%rip),%r12
lea    0xf1b(%rip),%r8
lea    0xf1c(%rip),%r9
movsd  0xe98(%rip),%xmm0
mov    %r13,%rsi
mov    %r12,%rcx
mov    $0x1,%al
push   %rbx
call   1040 <printf@plt>
add    $0x10,%rsp
lea    0x1268(%rip),%rdi
call   1030 <puts@plt>
sub    $0x8,%rsp
lea    0xef8(%rip),%rdi
lea    0xf25(%rip),%r14
lea    0xf23(%rip),%r15
mov    %r14,%rsi
mov    %rbx,%rdx
mov    %r15,%rcx
mov    %rbx,%r8
mov    %r15,%r9
xor    %eax,%eax
push   %rbx
call   1040 <printf@plt>
add    $0x10,%rsp
lea    0xf06(%rip),%rdi
mov    %r14,%rsi
mov    %rbx,%rdx
mov    %r14,%rcx
mov    %rbx,%r8
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xf22(%rip),%rdi
mov    %r15,%rsi
mov    %rbx,%rdx
mov    %r15,%rcx
mov    %rbx,%r8
xor    %eax,%eax
call   1040 <printf@plt>
sub    $0x8,%rsp
lea    0xf79(%rip),%rbp
lea    0xf6a(%rip),%r10
lea    0xf22(%rip),%rdi
mov    %r13,%rsi
mov    %r12,%rdx
lea    0xe50(%rip),%rcx
lea    0xe59(%rip),%r8
lea    0xe5a(%rip),%r9
xor    %eax,%eax
push   %rbx
push   %rbp
push   %r10
call   1040 <printf@plt>
add    $0x20,%rsp
lea    0xf42(%rip),%rdi
mov    %r14,%rsi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <printf@plt>
sub    $0x8,%rsp
lea    0xf6d(%rip),%rdi
mov    %r14,%rsi
mov    %rbx,%rdx
mov    %r14,%rcx
mov    %rbx,%r8
mov    %r15,%r9
xor    %eax,%eax
push   %rbx
push   %r14
push   %rbx
call   1040 <printf@plt>
add    $0x20,%rsp
lea    0xf9c(%rip),%rdi
mov    %r14,%rsi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0xfcf(%rip),%rdi
mov    %r14,%rsi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1199(%rip),%rdi
call   1030 <puts@plt>
lea    0xff9(%rip),%rdi
lea    0x112a(%rip),%rsi
mov    %rbx,%rdx
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1040 <printf@plt>

LLVM IR (-O0):
@.str = [84 x i8] c"%sc%so%sl%so%sr%s v%0.2f - copyright (c) 2001 Moshe Jacobson <moshe@runslinux.net>\0A\00"
@.str.1 = [8 x i8] c"\1B[1;31m\00"
@.str.2 = [8 x i8] c"\1B[1;33m\00"
@.str.3 = [8 x i8] c"\1B[1;32m\00"
@.str.4 = [8 x i8] c"\1B[1;34m\00"
@.str.5 = [8 x i8] c"\1B[1;35m\00"
@.str.6 = [5 x i8] c"\1B[0m\00"
@.str.7 = [78 x i8] c"This program is free software released under the GPL. See COPYING for info.\0A\0A\00"
@.str.8 = [52 x i8] c"Usage:\0A\0A %scolor%s [lt]%sfgcolor%s [%sbgcolor%s]\0A\00"
@.str.9 = [5 x i8] c"\1B[1m\00"
@.str.10 = [5 x i8] c"\1B[4m\00"
@.str.11 = [54 x i8] c" %scolor%s [ bd | ul | off ] %s\0A color%s --list\0A\0A\00"
@.str.12 = [44 x i8] c" %sfgcolor%s and %sbgcolor%s are one of:\0A\00"
@.str.13 = [65 x i8] c" %sred %sgreen %syellow %sblue %smagenta %scyan %swhite%s.\0A\00"
@.str.14 = [8 x i8] c"\1B[1;36m\00"
@.str.15 = [8 x i8] c"\1B[1;37m\00"
@.str.16 = [67 x i8] c" Preceed the foreground color with %slt%s to use a light color.\0A\00"
@.str.17 = [84 x i8] c" %scolor ul%s and %scolor bd%s turn on %sunderline%s and %sbold%s, respectively.\0A\00"
@.str.18 = [71 x i8] c" %scolor off%s turns off any coloring and resets to default colors.\0A\00"
@.str.19 = [74 x i8] c" %scolor --list%s shows all the possible color combinations visually.\0A\0A\00"
@.str.20 = [11 x i8] c"Example:\0A\0A\00"
@.str.21 = [312 x i8] c" This program can be used from shellscripts as a convenience to allow for\0A ansi colored text output. Simply invoke it with command substitution. For\0A example, in a POSIX compliant shell such as bash or ksh, you would do:\0A\0A echo \22$(color ltyellow blue)Hi there!$(color off)\22\0A\0A to see %sHi there!%s\0A\0A\00"
@.str.22 = [15 x i8] c"\1B[1;33m\1B[0;44m\00"
define void @usage() {
%1 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([84 x i8], [84 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), double 1.100000e+00)
%2 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([78 x i8], [78 x i8]* @.str.7, i64 0, i64 0))
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([44 x i8], [44 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([84 x i8], [84 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([74 x i8], [74 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.20, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([312 x i8], [312 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [84 x i8] c"%sc%so%sl%so%sr%s v%0.2f - copyright (c) 2001 Moshe Jacobson <moshe@runslinux.net>\0A\00"
@.str.1 = [8 x i8] c"\1B[1;31m\00"
@.str.2 = [8 x i8] c"\1B[1;33m\00"
@.str.3 = [8 x i8] c"\1B[1;32m\00"
@.str.4 = [8 x i8] c"\1B[1;34m\00"
@.str.5 = [8 x i8] c"\1B[1;35m\00"
@.str.6 = [5 x i8] c"\1B[0m\00"
@.str.8 = [52 x i8] c"Usage:\0A\0A %scolor%s [lt]%sfgcolor%s [%sbgcolor%s]\0A\00"
@.str.9 = [5 x i8] c"\1B[1m\00"
@.str.10 = [5 x i8] c"\1B[4m\00"
@.str.11 = [54 x i8] c" %scolor%s [ bd | ul | off ] %s\0A color%s --list\0A\0A\00"
@.str.12 = [44 x i8] c" %sfgcolor%s and %sbgcolor%s are one of:\0A\00"
@.str.13 = [65 x i8] c" %sred %sgreen %syellow %sblue %smagenta %scyan %swhite%s.\0A\00"
@.str.14 = [8 x i8] c"\1B[1;36m\00"
@.str.15 = [8 x i8] c"\1B[1;37m\00"
@.str.16 = [67 x i8] c" Preceed the foreground color with %slt%s to use a light color.\0A\00"
@.str.17 = [84 x i8] c" %scolor ul%s and %scolor bd%s turn on %sunderline%s and %sbold%s, respectively.\0A\00"
@.str.18 = [71 x i8] c" %scolor off%s turns off any coloring and resets to default colors.\0A\00"
@.str.19 = [74 x i8] c" %scolor --list%s shows all the possible color combinations visually.\0A\0A\00"
@.str.21 = [312 x i8] c" This program can be used from shellscripts as a convenience to allow for\0A ansi colored text output. Simply invoke it with command substitution. For\0A example, in a POSIX compliant shell such as bash or ksh, you would do:\0A\0A echo \22$(color ltyellow blue)Hi there!$(color off)\22\0A\0A to see %sHi there!%s\0A\0A\00"
@.str.22 = [15 x i8] c"\1B[1;33m\1B[0;44m\00"
@str = [77 x i8] c"This program is free software released under the GPL. See COPYING for info.\0A\00"
@str.23 = [10 x i8] c"Example:\0A\00"
define void @usage() {
%1 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([84 x i8], [84 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), double 1.100000e+00)
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([77 x i8], [77 x i8]* @str, i64 0, i64 0))
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%4 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%5 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([44 x i8], [44 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%6 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%7 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([67 x i8], [67 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%8 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([84 x i8], [84 x i8]* @.str.17, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%9 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @.str.18, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([74 x i8], [74 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @str.23, i64 0, i64 0))
%12 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([312 x i8], [312 x i8]* @.str.21, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.6, i64 0, i64 0))
ret void
}