def h(self, *args, **kwargs):
<EOL>if len(args) + len(kwargs) == <NUM_LIT:0>:<EOL><INDENT>print("<STR_LIT>")<EOL>for n in range(len(self.hkeys)):<EOL><INDENT>print('<STR_LIT:U+0020>'+str(n)+'<STR_LIT>'+str(self.hkeys[n])+'<STR_LIT>'+repr(self.h(n)))<EOL><DEDENT>return<EOL><DEDENT>for k in list(kwargs.keys()):<EOL><INDENT>self.insert_header(k, kwargs[k])<EOL><DEDENT>if len(args):<EOL><INDENT>hkey = args[<NUM_LIT:0>]<EOL>if type(hkey) in [int, int]: return self.headers[self.hkeys[hkey]]<EOL>elif hkey in self.hkeys:      return self.headers[hkey]<EOL>else:<EOL><INDENT>for k in self.hkeys:<EOL><INDENT>if k.find(hkey) >= <NUM_LIT:0>:<EOL><INDENT>return self.headers[k]<EOL><DEDENT><DEDENT>print()<EOL>print("<STR_LIT>"+str(hkey) + "<STR_LIT>")<EOL>print("<STR_LIT>")<EOL>for k in self.hkeys: print(k)<EOL>print()<EOL>return None<EOL><DEDENT><DEDENT>
This function searches through hkeys for one *containing* a key string
supplied by args[0] and returns that header value.

Also can take integers, returning the key'th header value.

kwargs can be specified to set header elements.

Finally, if called with no arguments or keyword arguments, this 
simply prints the header information.