<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load(jwks):
 """Parse a JWKSet and return a dictionary that maps key IDs on keys."""

    sign_keys = {}
    verify_keys = {}
    try:
        keyset = json.loads(jwks)
        for key in keyset['keys']:
            for op in key['key_ops']:
                if op == 'sign':
                    k = sign_keys
                elif op == 'verify':
                    k = verify_keys
                else:
                    raise JWKError("Unsupported key operation: {}".format(op))
                if key['kty'] == 'oct':
                    k[key['kid']] = _Key(alg=key['alg'], key=base64.urlsafe_b64decode(key['k']))
                elif key['kty'] == 'EC':
                    alg, ec_key = _load_ecdsa(key, op == 'verify')
                    k[key['kid']] = _Key(alg=alg, key=ec_key)
                else:
                    raise JWKError("Unsupported key type: {}".format(key['kty']))
    except (KeyError, json.JSONDecodeError) as e:
        raise JWKError() from e
    keys = _KeySet(signers=MappingProxyType(sign_keys), verifiers=MappingProxyType(verify_keys))
    return keys