# To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 1K of event 'cpu-clock:ppp' # Event count (approx.): 169400000 # # Overhead Samples Command Shared Object Symbol # ........ ............ ....... .................... .............................................................................................................................................................. # 32.23% 546 osh oils-for-unix [.] MarkSweepHeap::MaybeMarkAndPush(RawObject*) 10.09% 171 osh oils-for-unix [.] MarkSweepHeap::TraceChildren() 5.49% 93 osh oils-for-unix [.] MarkSweepHeap::Sweep() 5.25% 89 osh oils-for-unix [.] MarkSweepHeap::Allocate(unsigned long, int*, int*) 2.77% 47 osh oils-for-unix [.] match::OneToken(types_asdl::lex_mode_e, BigStr*, int) 1.65% 28 osh [kernel.kallsyms] [k] 0xffffffffb1deb679 1.42% 24 osh [kernel.kallsyms] [k] 0xffffffffb0eae7a3 1.42% 24 osh [kernel.kallsyms] [k] 0xffffffffb1d696c7 1.42% 24 osh oils-for-unix [.] cmd_parse::CommandParser::_GetWord() 1.42% 24 osh oils-for-unix [.] lexer::LineLexer::Read(types_asdl::lex_mode_e) 1.30% 22 osh oils-for-unix [.] lexer::Lexer::_Read(types_asdl::lex_mode_e) 1.12% 19 osh oils-for-unix [.] word_::CommandId(syntax_asdl::word_t*) 1.12% 19 osh oils-for-unix [.] word_parse::WordParser::_ReadCompoundWord3(types_asdl::lex_mode_e, int, bool) 1.06% 18 osh oils-for-unix [.] word_parse::WordParser::_ReadWord(types_asdl::lex_mode_e) 1.00% 17 osh libc.so.6 [.] malloc 0.89% 15 osh oils-for-unix [.] alloc::Arena::NewToken(int, int, int, syntax_asdl::SourceLine*) 0.83% 14 osh libc.so.6 [.] __getdelim 0.83% 14 osh oils-for-unix [.] List::at(int) 0.77% 13 osh oils-for-unix [.] consts::GetKind(unsigned short) 0.77% 13 osh oils-for-unix [.] lexer::Lexer::Read(types_asdl::lex_mode_e) 0.65% 11 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.65% 11 osh oils-for-unix [.] word_parse::WordParser::ReadWord(types_asdl::lex_mode_e) 0.59% 10 osh oils-for-unix [.] cmd_parse::CommandParser::_ScanSimpleCommand() 0.59% 10 osh oils-for-unix [.] word_::LiteralId(syntax_asdl::word_part_t*) 0.53% 9 osh [kernel.kallsyms] [k] 0xffffffffb123e90b 0.53% 9 osh oils-for-unix [.] process::ChildStateChange::ApplyFromParent(process::Process*) 0.53% 9 osh oils-for-unix [.] word_parse::WordParser::_MaybeReadWordPart(bool, types_asdl::lex_mode_e, List*) 0.47% 8 osh libc.so.6 [.] cfree 0.47% 8 osh libc.so.6 [.] 0x00000000000a48b0 0.47% 8 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.47% 8 osh oils-for-unix [.] word_parse::WordParser::_GetToken() 0.41% 7 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.41% 7 osh oils-for-unix [.] cmd_parse::_SplitSimpleCommandPrefix(List*) 0.41% 7 osh oils-for-unix [.] mylib::CFile::readline() 0.35% 6 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCommand() 0.30% 5 osh oils-for-unix [.] braces::BraceDetectAll(List*) 0.30% 5 osh oils-for-unix [.] cmd_parse::CommandParser::ParseSimpleCommand() 0.30% 5 osh oils-for-unix [.] lexer::TokenVal(syntax_asdl::Token*) 0.24% 4 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.24% 4 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.24% 4 osh oils-for-unix [.] alloc::Arena::AddLine(BigStr*, int) 0.24% 4 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseCommandTerm() 0.24% 4 osh oils-for-unix [.] reader::_Reader::GetLine() 0.24% 4 osh oils-for-unix [.] word_::StaticEval(syntax_asdl::word_t*) 0.24% 4 osh oils-for-unix [.] word_parse::WordParser::_ReadUnquotedLeftParts(syntax_asdl::BoolParamBox*) 0.18% 3 osh [kernel.kallsyms] [k] 0xffffffffb11a2b97 0.18% 3 osh [kernel.kallsyms] [k] 0xffffffffb11a53de 0.18% 3 osh [kernel.kallsyms] [k] 0xffffffffb123bbca 0.18% 3 osh [kernel.kallsyms] [k] 0xffffffffb1522fa4 0.18% 3 osh [kernel.kallsyms] [k] 0xffffffffb1f04104 0.18% 3 osh libc.so.6 [.] 0x00000000001a104a 0.18% 3 osh oils-for-unix [.] BigStr::slice(int, int) 0.18% 3 osh oils-for-unix [.] List::append(syntax_asdl::SourceLine*) 0.18% 3 osh oils-for-unix [.] List* Alloc>() 0.18% 3 osh oils-for-unix [.] List* Alloc>() 0.18% 3 osh oils-for-unix [.] cmd_parse::CommandParser::_MaybeExpandAliases(List*) 0.18% 3 osh oils-for-unix [.] cmd_parse::_MakeSimpleCommand(List*, List*, syntax_asdl::ArgList*, syntax_asdl::LiteralBlock*) 0.18% 3 osh oils-for-unix [.] cmd_parse::_ReadHereLines(reader::_Reader*, syntax_asdl::Redir*, BigStr*) 0.18% 3 osh oils-for-unix [.] location::LeftTokenForWordPart(syntax_asdl::word_part_t*) 0.18% 3 osh oils-for-unix [.] syntax_asdl::CompoundWord* Alloc*>(List*&&) 0.18% 3 osh oils-for-unix [.] word_::CommandKind(syntax_asdl::word_t*) 0.18% 3 osh oils-for-unix [.] word_::TildeDetect2(syntax_asdl::CompoundWord*) 0.18% 3 osh oils-for-unix [.] word_::_EvalWordPart(syntax_asdl::word_part_t*) 0.18% 3 osh oils-for-unix [.] word_parse::WordParser::_ReadLikeDQ(syntax_asdl::Token*, bool, List*) 0.12% 2 osh [kernel.kallsyms] [k] 0xffffffffb11a2704 0.12% 2 osh [kernel.kallsyms] [k] 0xffffffffb11c405b 0.12% 2 osh [kernel.kallsyms] [k] 0xffffffffb11fff8d 0.12% 2 osh [kernel.kallsyms] [k] 0xffffffffb1214da5 0.12% 2 osh [kernel.kallsyms] [k] 0xffffffffb123bb19 0.12% 2 osh [kernel.kallsyms] [k] 0xffffffffb123bbb1 0.12% 2 osh [kernel.kallsyms] [k] 0xffffffffb123d916 0.12% 2 osh [kernel.kallsyms] [k] 0xffffffffb1522f80 0.12% 2 osh ld-linux-x86-64.so.2 [.] 0x000000000000b791 0.12% 2 osh libc.so.6 [.] isupper 0.12% 2 osh libc.so.6 [.] 0x00000000000a1723 0.12% 2 osh libc.so.6 [.] 0x00000000000a2761 0.12% 2 osh libc.so.6 [.] 0x00000000000a3b16 0.12% 2 osh libc.so.6 [.] 0x00000000001a07e5 0.12% 2 osh oils-for-unix [.] BigStr::slice(int) 0.12% 2 osh oils-for-unix [.] List* NewList(std::initializer_list) 0.12% 2 osh oils-for-unix [.] List::append(syntax_asdl::IfArm*) 0.12% 2 osh oils-for-unix [.] StripAny(BigStr*, StripWhere, int) 0.12% 2 osh oils-for-unix [.] cmd_parse::CommandParser::ParseIf() 0.12% 2 osh oils-for-unix [.] cmd_parse::CommandParser::ParseRedirect() 0.12% 2 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseAndOr() 0.12% 2 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseCommandLine() 0.12% 2 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseElifElse(syntax_asdl::command__If*) 0.12% 2 osh oils-for-unix [.] cmd_parse::CommandParser::_ParseForEachLoop(syntax_asdl::Token*) 0.12% 2 osh oils-for-unix [.] cmd_parse::_AppendMoreEnv(List*, List*) 0.12% 2 osh oils-for-unix [.] cmd_parse::_MakeAssignPair(parse_lib::ParseContext*, syntax_asdl::ParsedAssignment*, alloc::Arena*) 0.12% 2 osh oils-for-unix [.] reader::FileLineReader::_GetLine() 0.12% 2 osh oils-for-unix [.] word_::AsKeywordToken(syntax_asdl::word_t*) 0.12% 2 osh oils-for-unix [.] word_::TildeDetectAssign(syntax_asdl::CompoundWord*) 0.12% 2 osh oils-for-unix [.] word_parse::WordParser::_ReadDoubleQuoted(syntax_asdl::Token*) 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb0eae7c0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb0eae83e 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb0eae845 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb0f68841 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb0f68d65 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb0f9d55e 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb0f9e423 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb0ffa0fd 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb114c53f 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb114d597 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb114d65d 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb114d763 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb114daf4 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb114dce5 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb115e357 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb115ea03 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb115ea4f 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11827e4 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a2b31 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a2b76 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a5326 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a53a7 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a53b4 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a53c5 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a53e6 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a548d 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a54e4 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a54ed 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a557b 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a5588 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a568d 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a6599 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11a682a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11aa0df 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11aa108 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11ad108 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11ad2f6 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11ad6b5 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11ad79a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11ad79e 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11ad816 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11ad892 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11b8376 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11c1414 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11c1492 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11c14c1 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11c1525 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11c40ac 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d2351 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d437a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d4405 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d4a87 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d4a89 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d4af1 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d4b32 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d4bc8 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d5c4d 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d6742 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d6a02 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d7d52 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d7d5d 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11d7db1 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11e1efb 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11fff80 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11fffcd 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb11fffde 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1213e84 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1214311 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb121439a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb12144a2 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1214992 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1238fa2 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb123aad4 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb123aae8 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb123baec 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb123bba9 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb123bbc9 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb123dc34 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1240243 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1240255 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb125df43 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb12ba8cb 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb142ee5b 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1522f91 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb156a420 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb161efa1 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb161efac 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb161efdd 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d490da 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d49111 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d49168 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d491aa 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d49279 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d49314 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d4933a 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d4933e 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d4b043 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1d6a9c0 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1dd718c 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1dd861d 0.06% 1 osh [kernel.kallsyms] [k] 0xffffffffb1deb978 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000b332 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000000c12d 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000011099 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x0000000000011340 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x000000000001154b 0.06% 1 osh ld-linux-x86-64.so.2 [.] 0x00000000000284ec 0.06% 1 osh libc.so.6 [.] _IO_file_underflow 0.06% 1 osh libc.so.6 [.] brk 0.06% 1 osh libc.so.6 [.] memchr@plt 0.06% 1 osh libc.so.6 [.] 0x00000000000a26a2 0.06% 1 osh libc.so.6 [.] 0x00000000000a26ac 0.06% 1 osh libc.so.6 [.] 0x00000000000a26cc 0.06% 1 osh libc.so.6 [.] 0x00000000000a273f 0.06% 1 osh libc.so.6 [.] 0x00000000000a2802 0.06% 1 osh libc.so.6 [.] 0x00000000000a2a1d 0.06% 1 osh libc.so.6 [.] 0x00000000000a324b 0.06% 1 osh libc.so.6 [.] 0x00000000000a39b3 0.06% 1 osh libc.so.6 [.] 0x00000000000a3cfd 0.06% 1 osh libc.so.6 [.] 0x00000000000a3e5c 0.06% 1 osh libc.so.6 [.] 0x00000000000a408a 0.06% 1 osh libc.so.6 [.] 0x00000000000a4268 0.06% 1 osh libc.so.6 [.] 0x00000000000d8b7e 0.06% 1 osh libc.so.6 [.] 0x00000000001992c0 0.06% 1 osh libc.so.6 [.] 0x00000000001992c4 0.06% 1 osh libc.so.6 [.] 0x00000000001992e4 0.06% 1 osh libc.so.6 [.] 0x0000000000199384 0.06% 1 osh libc.so.6 [.] 0x00000000001993da 0.06% 1 osh libc.so.6 [.] 0x0000000000199535 0.06% 1 osh libc.so.6 [.] 0x00000000001a07e1 0.06% 1 osh libc.so.6 [.] 0x00000000001a07eb 0.06% 1 osh libc.so.6 [.] 0x00000000001a0802 0.06% 1 osh libc.so.6 [.] 0x00000000001a0845 0.06% 1 osh libc.so.6 [.] 0x00000000001a0861 0.06% 1 osh libc.so.6 [.] 0x00000000001a0f84 0.06% 1 osh libc.so.6 [.] 0x00000000001a0f90 0.06% 1 osh libc.so.6 [.] 0x00000000001a0fa4 0.06% 1 osh libc.so.6 [.] 0x00000000001a0faa 0.06% 1 osh libstdc++.so.6.0.30 [.] std::__cxx11::collate::do_transform(char const*, char const*) const 0.06% 1 osh oils-for-unix [.] BigStr::at(int) 0.06% 1 osh oils-for-unix [.] BigStr::isdigit() 0.06% 1 osh oils-for-unix [.] BigStr::join(List*) 0.06% 1 osh oils-for-unix [.] List::at(int) 0.06% 1 osh oils-for-unix [.] List*>* Alloc*>>() 0.06% 1 osh oils-for-unix [.] List*>::append(Tuple2*) 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List::at(int) 0.06% 1 osh oils-for-unix [.] List* Alloc>() 0.06% 1 osh oils-for-unix [.] List::reserve(int) [clone .part.0] 0.06% 1 osh oils-for-unix [.] List* NewList(std::initializer_list) 0.06% 1 osh oils-for-unix [.] Tuple2* Alloc, syntax_asdl::SourceLine*&, int&>(syntax_asdl::SourceLine*&, int&) 0.06% 1 osh oils-for-unix [.] __errno_location@plt 0.06% 1 osh oils-for-unix [.] __getdelim@plt 0.06% 1 osh oils-for-unix [.] braces::BraceDetect(syntax_asdl::CompoundWord*) 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseBraceGroup() 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCaseArm() 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseCompoundCommand() 0.06% 1 osh oils-for-unix [.] cmd_parse::CommandParser::ParseLogicalLine() 0.06% 1 osh oils-for-unix [.] cmd_parse::_MakeLiteralHereLines(List*>*, alloc::Arena*, bool) 0.06% 1 osh oils-for-unix [.] cmd_parse::_ParseHereDocBody(parse_lib::ParseContext*, syntax_asdl::Redir*, reader::_Reader*, alloc::Arena*) 0.06% 1 osh oils-for-unix [.] lexer::LineLexer::LookAheadOne(types_asdl::lex_mode_e) 0.06% 1 osh oils-for-unix [.] lexer::LineLexer::LookPastSpace(types_asdl::lex_mode_e) 0.06% 1 osh oils-for-unix [.] py_readline::MaybeGetReadline() 0.06% 1 osh oils-for-unix [.] reader::VirtualLineReader::GetLine() 0.06% 1 osh oils-for-unix [.] syntax_asdl::command__CommandList* Alloc*&>(List*&) 0.06% 1 osh oils-for-unix [.] word_::IsControlFlow(syntax_asdl::CompoundWord*) 0.06% 1 osh oils-for-unix [.] word_::TildeDetect(syntax_asdl::word_t*) 0.06% 1 osh oils-for-unix [.] word_::TildeDetectAll(List*) 0.06% 1 osh oils-for-unix [.] word_parse::WordParser::LookAheadFuncParens() 0.06% 1 osh oils-for-unix [.] word_parse::WordParser::ReadSingleQuoted(types_asdl::lex_mode_e, syntax_asdl::Token*, List*, bool) 0.06% 1 osh oils-for-unix [.] word_parse::WordParser::_ReadVarOpArg2(types_asdl::lex_mode_e, int, bool) # # (Cannot load tips.txt file, please install perf!) #