@DictProperty('<STR_LIT>', '<STR_LIT>', read_only=True)<EOL><INDENT>def POST(self):<DEDENT>
post = FormsDict()<EOL>if not self.content_type.startswith('<STR_LIT>'):<EOL><INDENT>maxlen = max(<NUM_LIT:0>, min(self.content_length, self.MEMFILE_MAX))<EOL>pairs = _parse_qsl(tonat(self.body.read(maxlen), '<STR_LIT>'))<EOL>for key, value in pairs[:self.MAX_PARAMS]:<EOL><INDENT>post[key] = value<EOL><DEDENT>return post<EOL><DEDENT>safe_env = {'<STR_LIT>':'<STR_LIT>'} <EOL>for key in ('<STR_LIT>', '<STR_LIT>', '<STR_LIT>'):<EOL><INDENT>if key in self.environ: safe_env[key] = self.environ[key]<EOL><DEDENT>args = dict(fp=self.body, environ=safe_env, keep_blank_values=True)<EOL>if py >= (<NUM_LIT:3>,<NUM_LIT:2>,<NUM_LIT:0>):<EOL><INDENT>args['<STR_LIT>'] = '<STR_LIT>'<EOL><DEDENT>if NCTextIOWrapper:<EOL><INDENT>args['<STR_LIT>'] = NCTextIOWrapper(args['<STR_LIT>'], encoding='<STR_LIT>',<EOL>newline='<STR_LIT:\n>')<EOL><DEDENT>data = cgi.FieldStorage(**args)<EOL>for item in (data.list or [])[:self.MAX_PARAMS]:<EOL><INDENT>post[item.name] = item if item.filename else item.value<EOL><DEDENT>return post<EOL>
The values of :attr:`forms` and :attr:`files` combined into a single
            :class:`FormsDict`. Values are either strings (form values) or
            instances of :class:`cgi.FieldStorage` (file uploads).