<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def pop_fw_state(self, compl_result, os_status, dcnm_status):
 """Populate the state information in the cache. Check if state information is embedded in result If not: a. It's still in Init state and no SM is called yet b. The SM has completely run c. Delete has started and before any SM is run, it restarted. """

        res_list = compl_result.split('(')
        state_num = None
        if len(res_list) > 1:
            state_num = int(res_list[1].split(')')[0])
        else:
            if res_list[0] == fw_const.RESULT_FW_CREATE_INIT:
                if os_status is None:
                    state_num = fw_const.INIT_STATE
            elif res_list[0] == fw_const.RESULT_FW_CREATE_DONE:
                state_num = fw_const.FABRIC_PREPARE_DONE_STATE
            elif res_list[0] == fw_const.RESULT_FW_DELETE_INIT:
                if os_status == fw_const.OS_CREATE_SUCCESS and (
                   dcnm_status == fw_const.DCNM_CREATE_SUCCESS):
                    state_num = fw_const.FABRIC_PREPARE_DONE_STATE
        return state_num