<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def stmts_from_json(json_in, on_missing_support='handle'):
 """Get a list of Statements from Statement jsons. In the case of pre-assembled Statements which have `supports` and `supported_by` lists, the uuids will be replaced with references to Statement objects from the json, where possible. The method of handling missing support is controled by the `on_missing_support` key-word argument. Parameters json_in : iterable[dict] A json list containing json dict representations of INDRA Statements, as produced by the `to_json` methods of subclasses of Statement, or equivalently by `stmts_to_json`. on_missing_support : Optional[str] Handles the behavior when a uuid reference in `supports` or `supported_by` attribute cannot be resolved. This happens because uuids can only be linked to Statements contained in the `json_in` list, and some may be missing if only some of all the Statements from pre- assembly are contained in the list. Options: - *'handle'* : (default) convert unresolved uuids into `Unresolved` Statement objects. - *'ignore'* : Simply omit any uuids that cannot be linked to any Statements in the list. - *'error'* : Raise an error upon hitting an un-linkable uuid. Returns ------- stmts : list[:py:class:`Statement`] A list of INDRA Statements. """


    stmts = []
    uuid_dict = {}
    for json_stmt in json_in:
        try:
            st = Statement._from_json(json_stmt)
        except Exception as e:
            logger.warning("Error creating statement: %s" % e)
            continue
        stmts.append(st)
        uuid_dict[st.uuid] = st
    for st in stmts:
        _promote_support(st.supports, uuid_dict, on_missing_support)
        _promote_support(st.supported_by, uuid_dict, on_missing_support)
    return stmts