#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 Help(void) {
  printf(
      "Reads a CSV file from standard input and outputs a cleaner format.\n"
      "Usage: "
      "[1m"
      "csv"
      "[0m"
      " ["
      "[1m"
      "MODE"
      "[0m"
      "] ["
      "[1m"
      "OPTIONS"
      "[0m"
      "] [--] ["
      "[4m"
      "COLUMNNAME"
      "[0m"
      "...]\n"
      "Input modes:\n"
      " "
      "[1m"
      "-n"
      "[0m"
      ", "
      "[1m"
      "--named-columns"
      "[0m"
      "  "
      "Non-fixed, named columns:\n"
      "            The program reads column names from the argument list\n"
      "            and compares them to the first line of the CSV input,\n"
      "            printing only the named columns.\n"
      "            Separate column names with a single \""
      "[1m"
      "."
      "[0m"
      "\" argument!\n"
      "            The name order is irrelevant, as is case.\n"
      " "
      "[1m"
      "-g"
      "[0m"
      ", "
      "[1m"
      "--assigned-names"
      "[0m"
      "  "
      "Names assigned to column positions:\n"
      "            The program reads column names from the argument list and\n"
      "            applies them to all lines.  The special name \""
      "[1m"
      "@"
      "[0m"
      "\"\n"
      "            causes columns to be ignored.  The argument order "
      "represents\n"
      "            the column order in the CSV input.\n"
      " "
      "[1m"
      "-a"
      "[0m"
      ", "
      "[1m"
      "--auto-columns"
      "[0m"
      "  "
      "Automatic column names:\n"
      "            Column names will be read automatically from the first CSV "
      "line.\n"
      "            In this mode, "
      "[4m"
      "COLUMNNAME"
      "[0m"
      " specifications are\n"
      "            neither needed nor possible.\n"
      "            (This is the default mode.)\n"
      " "
      "[1m"
      "-i"
      "[0m"
      ", "
      "[1m"
      "--numbered-columns"
      "[0m"
      "  "
      "Numbered columns:\n"
      "            In this mode, the columns will be automatically numbered,\n"
      "            starting from zero.  Similar to \""
      "[1m"
      "-g 0 1 2 3"
      "[0m"
      "...\",\n"
      "            but will force the "
      "[1m"
      "-j"
      "[0m"
      " output mode to print each line\n"
      "            as an array instead of an object.  Not compatible with "
      "[1m"
      "-J"
      "[0m"
      " mode.\n"
      "            Causes the "
      "[1m"
      "-X"
      "[0m"
      " mode not to output any header names.\n"
      "\n");
  printf("Options:\n"
         "  "
         "[1m"
         "-m"
         "[0m"
         ", "
         "[1m"
         "--simple"
         "[0m"
         "  "
         "Output in simple format. (This is the default format.)\n"
         "  "
         "[1m"
         "-j"
         "[0m"
         ", "
         "[1m"
         "--json"
         "[0m"
         "    "
         "Output in JSON format.\n"
         "  "
         "[1m"
         "-J"
         "[0m"
         ", "
         "[1m"
         "--compact-json"
         "[0m"
         "  "
         "Output in compact JSON format\n"
         "                      (an object with 'columns' and 'lines' keys).\n"
         "  "
         "[1m"
         "-X"
         "[0m"
         ", "
         "[1m"
         "--shell-vars"
         "[0m"
         "  "
         "Output in shell variable assignment format.\n"
         "  "
         "[1m"
         "-C"
         "[0m"
         ", "
         "[1m"
         "--csv-output"
         "[0m"
         "  "
         "Output in CSV format.\n"
         "  "
         "[1m"
         "-d"
         "[0m"
         ", "
         "[1m"
         "--separator"
         "[0m"
         " "
         "[4m"
         "C"
         "[0m"
         "  "
         "Use field separator character "
         "[4m"
         "C"
         "[0m"
         ".\n"
         "                     The special value \""
         "[1m"
         "auto"
         "[0m"
         "\" causes auto-detection\n"
         "                     on the first input line (this is the default "
         "mode).\n"
         "  "
         "[1m"
         "-q"
         "[0m"
         ", "
         "[1m"
         "--quotes"
         "[0m"
         " "
         "[4m"
         "C"
         "[0m"
         "  "
         "Use field quoting character "
         "[4m"
         "C"
         "[0m"
         ". Default: -q\".\n"
         "                  The special value \""
         "[1m"
         "auto"
         "[0m"
         "\" causes auto-detection\n"
         "                  on the first quoted field (recognized: \", ').\n"
         "  "
         "[1m"
         "-b"
         "[0m"
         ", "
         "[1m"
         "--allow-breaks"
         "[0m"
         "  "
         "Allow linebreaks within doublequoted fields.\n"
         "  "
         "[1m"
         "-s"
         "[0m"
         ", "
         "[1m"
         "--skip "
         "[0m"
         "[4m"
         "N"
         "[0m"
         "  "
         "Skip the first "
         "[4m"
         "N"
         "[0m"
         " input lines.\n"
         "                In modes "
         "[1m"
         "-n"
         "[0m"
         " and "
         "[1m"
         "-a"
         "[0m"
         ", skip the first "
         "[4m"
         "N"
         "[0m"
         " input lines\n"
         "                after the header line.\n"
         "                Setting "
         "[4m"
         "N"
         "[0m"
         " to zero means no skip (this is the default).\n"
         "  "
         "[1m"
         "-l"
         "[0m"
         ", "
         "[1m"
         "--limit "
         "[0m"
         "[4m"
         "N"
         "[0m"
         "  "
         "Stop after the "
         "[4m"
         "N"
         "[0m"
         "th input line.\n"
         "                 In modes "
         "[1m"
         "-n"
         "[0m"
         " and "
         "[1m"
         "-a"
         "[0m"
         ", the header line is not counted.\n"
         "                 Setting "
         "[4m"
         "N"
         "[0m"
         " to zero removes the limit (this is the default).\n"
         "\n");
  printf("  "
         "[1m"
         "-e"
         "[0m"
         ", "
         "[1m"
         "--ignore-errors"
         "[0m"
         "  "
         "Don't stop on encountering malformed CSV input.\n"
         "  "
         "[1m"
         "--color"
         "[0m"
         "[="
         "[4m"
         "WHEN"
         "[0m"
         "]  "
         "Colorize output: "
         "[1m"
         "always"
         "[0m"
         " (default if "
         "[4m"
         "WHEN"
         "[0m"
         " is missing),\n"
         "                  "
         "[1m"
         "auto"
         "[0m"
         " (default), or "
         "[1m"
         "never"
         "[0m"
         ".\n"
         "  "
         "[1m"
         "--trim"
         "[0m"
         "[="
         "[4m"
         "MODE"
         "[0m"
         "]   "
         "Trim whitespace from input:\n"
         "                  "
         "[1m"
         "lines"
         "[0m"
         " (default if "
         "[4m"
         "MODE"
         "[0m"
         " is missing) or "
         "[1m"
         "none"
         "[0m"
         " (default).\n"
         "  "
         "[1m"
         "--filter"
         "[0m"
         "[="
         "[4m"
         "MODE"
         "[0m"
         "] "
         "Drop input records from output:\n"
         "                  "
         "[1m"
         "empty"
         "[0m"
         " (default if "
         "[4m"
         "MODE"
         "[0m"
         " is missing), "
         "[1m"
         "blank"
         "[0m"
         ", "
         "[1m"
         "zero"
         "[0m"
         ",\n"
         "                  "
         "[1m"
         "empty-or-zero"
         "[0m"
         ", "
         "[1m"
         "blank-or-zero"
         "[0m"
         ", or "
         "[1m"
         "none"
         "[0m"
         " (default).\n"
         "  "
         "[1m"
         "-F"
         "[0m"
         ", "
         "[1m"
         "--flush"
         "[0m"
         "     "
         "Flush the output after every input line.\n"
         "  "
         "[1m"
         "-M"
         "[0m"
         ", "
         "[1m"
         "--keep-bom"
         "[0m"
         "  "
         "Don't try to remove UTF-8/16 BOMs from the first line.\n"
         "  "
         "[1m"
         "-u"
         "[0m"
         ", "
         "[1m"
         "--unknowns"
         "[0m"
         "  "
         "Also output unknown columns in "
         "[1m"
         "-n"
         "[0m"
         " mode.\n"
         "  "
         "[1m"
         "-h"
         "[0m"
         ", "
         "[1m"
         "--help"
         "[0m"
         "      "
         "This help\n"
         "  "
         "[1m"
         "-V"
         "[0m"
         ", "
         "[1m"
         "--version"
         "[0m"
         "   "
         "Program version\n"
         "\n");
}


x86 assembly (clang, -O0):
<Help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
lea    0x14fc(%rip),%rdi
call   1030 <printf@plt>
lea    0x1ad6(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<Help>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0x14fe(%rip),%rdi
call   1030 <puts@plt>
lea    0x1ad7(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1571 x i8] c"Reads a CSV file from standard input and outputs a cleaner format.\0AUsage: \1B[1mcsv\1B[0m [\1B[1mMODE\1B[0m] [\1B[1mOPTIONS\1B[0m] [--] [\1B[4mCOLUMNNAME\1B[0m...]\0AInput modes:\0A \1B[1m-n\1B[0m, \1B[1m--named-columns\1B[0m Non-fixed, named columns:\0A The program reads column names from the argument list\0A and compares them to the first line of the CSV input,\0A printing only the named columns.\0A Separate column names with a single \22\1B[1m.\1B[0m\22 argument!\0A The name order is irrelevant, as is case.\0A \1B[1m-g\1B[0m, \1B[1m--assigned-names\1B[0m Names assigned to column positions:\0A The program reads column names from the argument list and\0A applies them to all lines. The special name \22\1B[1m@\1B[0m\22\0A causes columns to be ignored. The argument order represents\0A the column order in the CSV input.\0A \1B[1m-a\1B[0m, \1B[1m--auto-columns\1B[0m Automatic column names:\0A Column names will be read automatically from the first CSV line.\0A In this mode, \1B[4mCOLUMNNAME\1B[0m specifications are\0A neither needed nor possible.\0A (This is the default mode.)\0A \1B[1m-i\1B[0m, \1B[1m--numbered-columns\1B[0m Numbered columns:\0A In this mode, the columns will be automatically numbered,\0A starting from zero. Similar to \22\1B[1m-g 0 1 2 3\1B[0m...\22,\0A but will force the \1B[1m-j\1B[0m output mode to print each line\0A as an array instead of an object. Not compatible with \1B[1m-J\1B[0m mode.\0A Causes the \1B[1m-X\1B[0m mode not to output any header names.\0A\0A\00"
@.str.1 = [1510 x i8] c"Options:\0A \1B[1m-m\1B[0m, \1B[1m--simple\1B[0m Output in simple format. (This is the default format.)\0A \1B[1m-j\1B[0m, \1B[1m--json\1B[0m Output in JSON format.\0A \1B[1m-J\1B[0m, \1B[1m--compact-json\1B[0m Output in compact JSON format\0A (an object with 'columns' and 'lines' keys).\0A \1B[1m-X\1B[0m, \1B[1m--shell-vars\1B[0m Output in shell variable assignment format.\0A \1B[1m-C\1B[0m, \1B[1m--csv-output\1B[0m Output in CSV format.\0A \1B[1m-d\1B[0m, \1B[1m--separator\1B[0m \1B[4mC\1B[0m Use field separator character \1B[4mC\1B[0m.\0A The special value \22\1B[1mauto\1B[0m\22 causes auto-detection\0A on the first input line (this is the default mode).\0A \1B[1m-q\1B[0m, \1B[1m--quotes\1B[0m \1B[4mC\1B[0m Use field quoting character \1B[4mC\1B[0m. Default: -q\22.\0A The special value \22\1B[1mauto\1B[0m\22 causes auto-detection\0A on the first quoted field (recognized: \22, ').\0A \1B[1m-b\1B[0m, \1B[1m--allow-breaks\1B[0m Allow linebreaks within doublequoted fields.\0A \1B[1m-s\1B[0m, \1B[1m--skip \1B[0m\1B[4mN\1B[0m Skip the first \1B[4mN\1B[0m input lines.\0A In modes \1B[1m-n\1B[0m and \1B[1m-a\1B[0m, skip the first \1B[4mN\1B[0m input lines\0A after the header line.\0A Setting \1B[4mN\1B[0m to zero means no skip (this is the default).\0A \1B[1m-l\1B[0m, \1B[1m--limit \1B[0m\1B[4mN\1B[0m Stop after the \1B[4mN\1B[0mth input line.\0A In modes \1B[1m-n\1B[0m and \1B[1m-a\1B[0m, the header line is not counted.\0A Setting \1B[4mN\1B[0m to zero removes the limit (this is the default).\0A\0A\00"
@.str.2 = [1007 x i8] c" \1B[1m-e\1B[0m, \1B[1m--ignore-errors\1B[0m Don't stop on encountering malformed CSV input.\0A \1B[1m--color\1B[0m[=\1B[4mWHEN\1B[0m] Colorize output: \1B[1malways\1B[0m (default if \1B[4mWHEN\1B[0m is missing),\0A \1B[1mauto\1B[0m (default), or \1B[1mnever\1B[0m.\0A \1B[1m--trim\1B[0m[=\1B[4mMODE\1B[0m] Trim whitespace from input:\0A \1B[1mlines\1B[0m (default if \1B[4mMODE\1B[0m is missing) or \1B[1mnone\1B[0m (default).\0A \1B[1m--filter\1B[0m[=\1B[4mMODE\1B[0m] Drop input records from output:\0A \1B[1mempty\1B[0m (default if \1B[4mMODE\1B[0m is missing), \1B[1mblank\1B[0m, \1B[1mzero\1B[0m,\0A \1B[1mempty-or-zero\1B[0m, \1B[1mblank-or-zero\1B[0m, or \1B[1mnone\1B[0m (default).\0A \1B[1m-F\1B[0m, \1B[1m--flush\1B[0m Flush the output after every input line.\0A \1B[1m-M\1B[0m, \1B[1m--keep-bom\1B[0m Don't try to remove UTF-8/16 BOMs from the first line.\0A \1B[1m-u\1B[0m, \1B[1m--unknowns\1B[0m Also output unknown columns in \1B[1m-n\1B[0m mode.\0A \1B[1m-h\1B[0m, \1B[1m--help\1B[0m This help\0A \1B[1m-V\1B[0m, \1B[1m--version\1B[0m Program version\0A\0A\00"
define void @Help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1571 x i8], [1571 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([1510 x i8], [1510 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([1007 x i8], [1007 x i8]* @.str.2, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1570 x i8] c"Reads a CSV file from standard input and outputs a cleaner format.\0AUsage: \1B[1mcsv\1B[0m [\1B[1mMODE\1B[0m] [\1B[1mOPTIONS\1B[0m] [--] [\1B[4mCOLUMNNAME\1B[0m...]\0AInput modes:\0A \1B[1m-n\1B[0m, \1B[1m--named-columns\1B[0m Non-fixed, named columns:\0A The program reads column names from the argument list\0A and compares them to the first line of the CSV input,\0A printing only the named columns.\0A Separate column names with a single \22\1B[1m.\1B[0m\22 argument!\0A The name order is irrelevant, as is case.\0A \1B[1m-g\1B[0m, \1B[1m--assigned-names\1B[0m Names assigned to column positions:\0A The program reads column names from the argument list and\0A applies them to all lines. The special name \22\1B[1m@\1B[0m\22\0A causes columns to be ignored. The argument order represents\0A the column order in the CSV input.\0A \1B[1m-a\1B[0m, \1B[1m--auto-columns\1B[0m Automatic column names:\0A Column names will be read automatically from the first CSV line.\0A In this mode, \1B[4mCOLUMNNAME\1B[0m specifications are\0A neither needed nor possible.\0A (This is the default mode.)\0A \1B[1m-i\1B[0m, \1B[1m--numbered-columns\1B[0m Numbered columns:\0A In this mode, the columns will be automatically numbered,\0A starting from zero. Similar to \22\1B[1m-g 0 1 2 3\1B[0m...\22,\0A but will force the \1B[1m-j\1B[0m output mode to print each line\0A as an array instead of an object. Not compatible with \1B[1m-J\1B[0m mode.\0A Causes the \1B[1m-X\1B[0m mode not to output any header names.\0A\00"
@str.3 = [1509 x i8] c"Options:\0A \1B[1m-m\1B[0m, \1B[1m--simple\1B[0m Output in simple format. (This is the default format.)\0A \1B[1m-j\1B[0m, \1B[1m--json\1B[0m Output in JSON format.\0A \1B[1m-J\1B[0m, \1B[1m--compact-json\1B[0m Output in compact JSON format\0A (an object with 'columns' and 'lines' keys).\0A \1B[1m-X\1B[0m, \1B[1m--shell-vars\1B[0m Output in shell variable assignment format.\0A \1B[1m-C\1B[0m, \1B[1m--csv-output\1B[0m Output in CSV format.\0A \1B[1m-d\1B[0m, \1B[1m--separator\1B[0m \1B[4mC\1B[0m Use field separator character \1B[4mC\1B[0m.\0A The special value \22\1B[1mauto\1B[0m\22 causes auto-detection\0A on the first input line (this is the default mode).\0A \1B[1m-q\1B[0m, \1B[1m--quotes\1B[0m \1B[4mC\1B[0m Use field quoting character \1B[4mC\1B[0m. Default: -q\22.\0A The special value \22\1B[1mauto\1B[0m\22 causes auto-detection\0A on the first quoted field (recognized: \22, ').\0A \1B[1m-b\1B[0m, \1B[1m--allow-breaks\1B[0m Allow linebreaks within doublequoted fields.\0A \1B[1m-s\1B[0m, \1B[1m--skip \1B[0m\1B[4mN\1B[0m Skip the first \1B[4mN\1B[0m input lines.\0A In modes \1B[1m-n\1B[0m and \1B[1m-a\1B[0m, skip the first \1B[4mN\1B[0m input lines\0A after the header line.\0A Setting \1B[4mN\1B[0m to zero means no skip (this is the default).\0A \1B[1m-l\1B[0m, \1B[1m--limit \1B[0m\1B[4mN\1B[0m Stop after the \1B[4mN\1B[0mth input line.\0A In modes \1B[1m-n\1B[0m and \1B[1m-a\1B[0m, the header line is not counted.\0A Setting \1B[4mN\1B[0m to zero removes the limit (this is the default).\0A\00"
@str.4 = [1006 x i8] c" \1B[1m-e\1B[0m, \1B[1m--ignore-errors\1B[0m Don't stop on encountering malformed CSV input.\0A \1B[1m--color\1B[0m[=\1B[4mWHEN\1B[0m] Colorize output: \1B[1malways\1B[0m (default if \1B[4mWHEN\1B[0m is missing),\0A \1B[1mauto\1B[0m (default), or \1B[1mnever\1B[0m.\0A \1B[1m--trim\1B[0m[=\1B[4mMODE\1B[0m] Trim whitespace from input:\0A \1B[1mlines\1B[0m (default if \1B[4mMODE\1B[0m is missing) or \1B[1mnone\1B[0m (default).\0A \1B[1m--filter\1B[0m[=\1B[4mMODE\1B[0m] Drop input records from output:\0A \1B[1mempty\1B[0m (default if \1B[4mMODE\1B[0m is missing), \1B[1mblank\1B[0m, \1B[1mzero\1B[0m,\0A \1B[1mempty-or-zero\1B[0m, \1B[1mblank-or-zero\1B[0m, or \1B[1mnone\1B[0m (default).\0A \1B[1m-F\1B[0m, \1B[1m--flush\1B[0m Flush the output after every input line.\0A \1B[1m-M\1B[0m, \1B[1m--keep-bom\1B[0m Don't try to remove UTF-8/16 BOMs from the first line.\0A \1B[1m-u\1B[0m, \1B[1m--unknowns\1B[0m Also output unknown columns in \1B[1m-n\1B[0m mode.\0A \1B[1m-h\1B[0m, \1B[1m--help\1B[0m This help\0A \1B[1m-V\1B[0m, \1B[1m--version\1B[0m Program version\0A\00"
define void @Help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1570 x i8], [1570 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1509 x i8], [1509 x i8]* @str.3, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1006 x i8], [1006 x i8]* @str.4, i64 0, i64 0))
ret void
}