inlined functions