{"version":3,"sources":["../src/contexts/www.w3.org_2018_credentials_v1.json","../src/contexts/www.w3.org_ns_credentials_v2.json","../src/index.ts","../src/suites/Ed25519Signature2018.ts","../src/ld-suites.ts","../src/suites/Ed25519Signature2020.ts","../src/suites/EcdsaSecp256k1RecoverySignature2020.ts","../src/ld-credential-module.ts","../src/ld-document-loader.ts","../src/enums.ts","../src/ld-context-loader.ts","../src/ld-suite-loader.ts","../src/contexts/bbs-bls-signature-2020-v1.json","../src/contexts/citizenship-v1.json","../src/contexts/ed25519-signature-2020-v1.json","../src/contexts/eip712.json","../src/contexts/json-web-signature-2020-v1.json","../src/contexts/lds-ecdsa-secp256k1-recovery2020-0.0.json","../src/contexts/veramo.io_contexts_profile_v1.json","../src/contexts/w3id.org_security_suites_ed25519-2018_v1.json","../src/contexts/w3id.org_security_v1.json","../src/contexts/w3id.org_security_v2.json","../src/contexts/w3id.org_security_v3-unstable.json","../src/contexts/w3id.org_security_suites_x25519-2019_v1.json","../src/contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json","../src/contexts/vc-revocation-list-2020-v1.json","../src/contexts/vc-status-list-2021-v1.json","../src/contexts/www.w3.org_ns_did_v1.json","../src/ld-default-contexts.ts","../src/agent/CredentialProviderJsonld.ts"],"sourcesContent":["{\n  \"@context\": {\n    \"@version\": 1.1,\n    \"@protected\": true,\n\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n\n    \"VerifiableCredential\": {\n      \"@id\": \"https://www.w3.org/2018/credentials#VerifiableCredential\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"cred\": \"https://www.w3.org/2018/credentials#\",\n        \"sec\": \"https://w3id.org/security#\",\n        \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n        \"credentialSchema\": {\n          \"@id\": \"cred:credentialSchema\",\n          \"@type\": \"@id\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n\n            \"cred\": \"https://www.w3.org/2018/credentials#\",\n\n            \"JsonSchemaValidator2018\": \"cred:JsonSchemaValidator2018\"\n          }\n        },\n        \"credentialStatus\": { \"@id\": \"cred:credentialStatus\", \"@type\": \"@id\" },\n        \"credentialSubject\": { \"@id\": \"cred:credentialSubject\", \"@type\": \"@id\" },\n        \"evidence\": { \"@id\": \"cred:evidence\", \"@type\": \"@id\" },\n        \"expirationDate\": { \"@id\": \"cred:expirationDate\", \"@type\": \"xsd:dateTime\" },\n        \"holder\": { \"@id\": \"cred:holder\", \"@type\": \"@id\" },\n        \"issued\": { \"@id\": \"cred:issued\", \"@type\": \"xsd:dateTime\" },\n        \"issuer\": { \"@id\": \"cred:issuer\", \"@type\": \"@id\" },\n        \"issuanceDate\": { \"@id\": \"cred:issuanceDate\", \"@type\": \"xsd:dateTime\" },\n        \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n        \"refreshService\": {\n          \"@id\": \"cred:refreshService\",\n          \"@type\": \"@id\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n\n            \"cred\": \"https://www.w3.org/2018/credentials#\",\n\n            \"ManualRefreshService2018\": \"cred:ManualRefreshService2018\"\n          }\n        },\n        \"termsOfUse\": { \"@id\": \"cred:termsOfUse\", \"@type\": \"@id\" },\n        \"validFrom\": { \"@id\": \"cred:validFrom\", \"@type\": \"xsd:dateTime\" },\n        \"validUntil\": { \"@id\": \"cred:validUntil\", \"@type\": \"xsd:dateTime\" }\n      }\n    },\n\n    \"VerifiablePresentation\": {\n      \"@id\": \"https://www.w3.org/2018/credentials#VerifiablePresentation\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"cred\": \"https://www.w3.org/2018/credentials#\",\n        \"sec\": \"https://w3id.org/security#\",\n\n        \"holder\": { \"@id\": \"cred:holder\", \"@type\": \"@id\" },\n        \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n        \"verifiableCredential\": { \"@id\": \"cred:verifiableCredential\", \"@type\": \"@id\", \"@container\": \"@graph\" }\n      }\n    },\n\n    \"EcdsaSecp256k1Signature2019\": {\n      \"@id\": \"https://w3id.org/security#EcdsaSecp256k1Signature2019\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"sec\": \"https://w3id.org/security#\",\n        \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n        \"challenge\": \"sec:challenge\",\n        \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n        \"domain\": \"sec:domain\",\n        \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n        \"jws\": \"sec:jws\",\n        \"nonce\": \"sec:nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"sec:proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n\n            \"sec\": \"https://w3id.org/security#\",\n\n            \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n            \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n          }\n        },\n        \"proofValue\": \"sec:proofValue\",\n        \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n      }\n    },\n\n    \"EcdsaSecp256r1Signature2019\": {\n      \"@id\": \"https://w3id.org/security#EcdsaSecp256r1Signature2019\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"sec\": \"https://w3id.org/security#\",\n        \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n        \"challenge\": \"sec:challenge\",\n        \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n        \"domain\": \"sec:domain\",\n        \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n        \"jws\": \"sec:jws\",\n        \"nonce\": \"sec:nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"sec:proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n\n            \"sec\": \"https://w3id.org/security#\",\n\n            \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n            \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n          }\n        },\n        \"proofValue\": \"sec:proofValue\",\n        \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n      }\n    },\n\n    \"Ed25519Signature2018\": {\n      \"@id\": \"https://w3id.org/security#Ed25519Signature2018\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"sec\": \"https://w3id.org/security#\",\n        \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n        \"challenge\": \"sec:challenge\",\n        \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n        \"domain\": \"sec:domain\",\n        \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n        \"jws\": \"sec:jws\",\n        \"nonce\": \"sec:nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"sec:proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n\n            \"sec\": \"https://w3id.org/security#\",\n\n            \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n            \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n          }\n        },\n        \"proofValue\": \"sec:proofValue\",\n        \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n      }\n    },\n\n    \"RsaSignature2018\": {\n      \"@id\": \"https://w3id.org/security#RsaSignature2018\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n\n        \"challenge\": \"sec:challenge\",\n        \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n        \"domain\": \"sec:domain\",\n        \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n        \"jws\": \"sec:jws\",\n        \"nonce\": \"sec:nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"sec:proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n\n            \"sec\": \"https://w3id.org/security#\",\n\n            \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n            \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n          }\n        },\n        \"proofValue\": \"sec:proofValue\",\n        \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n      }\n    },\n\n    \"proof\": { \"@id\": \"https://w3id.org/security#proof\", \"@type\": \"@id\", \"@container\": \"@graph\" }\n  }\n}\n","{\n  \"@context\": {\n    \"@protected\": true,\n\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n\n    \"description\": \"https://schema.org/description\",\n    \"digestMultibase\": {\n      \"@id\": \"https://w3id.org/security#digestMultibase\",\n      \"@type\": \"https://w3id.org/security#multibase\"\n    },\n    \"digestSRI\": {\n      \"@id\": \"https://www.w3.org/2018/credentials#digestSRI\",\n      \"@type\": \"https://www.w3.org/2018/credentials#sriString\"\n    },\n    \"mediaType\": {\n      \"@id\": \"https://schema.org/encodingFormat\"\n    },\n    \"name\": \"https://schema.org/name\",\n\n    \"VerifiableCredential\": {\n      \"@id\": \"https://www.w3.org/2018/credentials#VerifiableCredential\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"confidenceMethod\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#confidenceMethod\",\n          \"@type\": \"@id\"\n        },\n        \"credentialSchema\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#credentialSchema\",\n          \"@type\": \"@id\"\n        },\n        \"credentialStatus\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#credentialStatus\",\n          \"@type\": \"@id\"\n        },\n        \"credentialSubject\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#credentialSubject\",\n          \"@type\": \"@id\"\n        },\n        \"description\": \"https://schema.org/description\",\n        \"evidence\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#evidence\",\n          \"@type\": \"@id\"\n        },\n        \"issuer\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#issuer\",\n          \"@type\": \"@id\"\n        },\n        \"name\": \"https://schema.org/name\",\n        \"proof\": {\n          \"@id\": \"https://w3id.org/security#proof\",\n          \"@type\": \"@id\",\n          \"@container\": \"@graph\"\n        },\n        \"refreshService\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#refreshService\",\n          \"@type\": \"@id\"\n        },\n        \"relatedResource\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#relatedResource\",\n          \"@type\": \"@id\"\n        },\n        \"renderMethod\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#renderMethod\",\n          \"@type\": \"@id\"\n        },\n        \"termsOfUse\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#termsOfUse\",\n          \"@type\": \"@id\"\n        },\n        \"validFrom\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#validFrom\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"validUntil\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#validUntil\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        }\n      }\n    },\n\n    \"EnvelopedVerifiableCredential\": \"https://www.w3.org/2018/credentials#EnvelopedVerifiableCredential\",\n\n    \"VerifiablePresentation\": {\n      \"@id\": \"https://www.w3.org/2018/credentials#VerifiablePresentation\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"holder\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#holder\",\n          \"@type\": \"@id\"\n        },\n        \"proof\": {\n          \"@id\": \"https://w3id.org/security#proof\",\n          \"@type\": \"@id\",\n          \"@container\": \"@graph\"\n        },\n        \"termsOfUse\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#termsOfUse\",\n          \"@type\": \"@id\"\n        },\n        \"verifiableCredential\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#verifiableCredential\",\n          \"@type\": \"@id\",\n          \"@container\": \"@graph\",\n          \"@context\": null\n        }\n      }\n    },\n\n    \"EnvelopedVerifiablePresentation\": \"https://www.w3.org/2018/credentials#EnvelopedVerifiablePresentation\",\n\n    \"JsonSchemaCredential\": \"https://www.w3.org/2018/credentials#JsonSchemaCredential\",\n\n    \"JsonSchema\": {\n      \"@id\": \"https://www.w3.org/2018/credentials#JsonSchema\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"jsonSchema\": {\n          \"@id\": \"https://www.w3.org/2018/credentials#jsonSchema\",\n          \"@type\": \"@json\"\n        }\n      }\n    },\n\n    \"BitstringStatusListCredential\": \"https://www.w3.org/ns/credentials/status#BitstringStatusListCredential\",\n\n    \"BitstringStatusList\": {\n      \"@id\": \"https://www.w3.org/ns/credentials/status#BitstringStatusList\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"encodedList\": {\n          \"@id\": \"https://www.w3.org/ns/credentials/status#encodedList\",\n          \"@type\": \"https://w3id.org/security#multibase\"\n        },\n        \"statusPurpose\": \"https://www.w3.org/ns/credentials/status#statusPurpose\",\n        \"ttl\": \"https://www.w3.org/ns/credentials/status#ttl\"\n      }\n    },\n\n    \"BitstringStatusListEntry\": {\n      \"@id\": \"https://www.w3.org/ns/credentials/status#BitstringStatusListEntry\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"statusListCredential\": {\n          \"@id\": \"https://www.w3.org/ns/credentials/status#statusListCredential\",\n          \"@type\": \"@id\"\n        },\n        \"statusListIndex\": \"https://www.w3.org/ns/credentials/status#statusListIndex\",\n        \"statusPurpose\": \"https://www.w3.org/ns/credentials/status#statusPurpose\",\n        \"statusMessage\": {\n          \"@id\": \"https://www.w3.org/ns/credentials/status#statusMessage\",\n          \"@context\": {\n            \"@protected\": true,\n\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n\n            \"message\": \"https://www.w3.org/ns/credentials/status#message\",\n            \"status\": \"https://www.w3.org/ns/credentials/status#status\"\n          }\n        },\n        \"statusReference\": {\n          \"@id\": \"https://www.w3.org/ns/credentials/status#statusReference\",\n          \"@type\": \"@id\"\n        },\n        \"statusSize\": {\n          \"@id\": \"https://www.w3.org/ns/credentials/status#statusSize\",\n          \"@type\": \"https://www.w3.org/2001/XMLSchema#integer\"\n        }\n      }\n    },\n\n    \"DataIntegrityProof\": {\n      \"@id\": \"https://w3id.org/security#DataIntegrityProof\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"challenge\": \"https://w3id.org/security#challenge\",\n        \"created\": {\n          \"@id\": \"http://purl.org/dc/terms/created\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"cryptosuite\": {\n          \"@id\": \"https://w3id.org/security#cryptosuite\",\n          \"@type\": \"https://w3id.org/security#cryptosuiteString\"\n        },\n        \"domain\": \"https://w3id.org/security#domain\",\n        \"expires\": {\n          \"@id\": \"https://w3id.org/security#expiration\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"nonce\": \"https://w3id.org/security#nonce\",\n        \"previousProof\": {\n          \"@id\": \"https://w3id.org/security#previousProof\",\n          \"@type\": \"@id\"\n        },\n        \"proofPurpose\": {\n          \"@id\": \"https://w3id.org/security#proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@protected\": true,\n\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n\n            \"assertionMethod\": {\n              \"@id\": \"https://w3id.org/security#assertionMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"authentication\": {\n              \"@id\": \"https://w3id.org/security#authenticationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityDelegation\": {\n              \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityInvocation\": {\n              \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"keyAgreement\": {\n              \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            }\n          }\n        },\n        \"proofValue\": {\n          \"@id\": \"https://w3id.org/security#proofValue\",\n          \"@type\": \"https://w3id.org/security#multibase\"\n        },\n        \"verificationMethod\": {\n          \"@id\": \"https://w3id.org/security#verificationMethod\",\n          \"@type\": \"@id\"\n        }\n      }\n    },\n\n    \"...\": {\n      \"@id\": \"https://www.iana.org/assignments/jwt#...\"\n    },\n    \"_sd\": {\n      \"@id\": \"https://www.iana.org/assignments/jwt#_sd\",\n      \"@type\": \"@json\"\n    },\n    \"_sd_alg\": {\n      \"@id\": \"https://www.iana.org/assignments/jwt#_sd_alg\"\n    },\n    \"aud\": {\n      \"@id\": \"https://www.iana.org/assignments/jwt#aud\",\n      \"@type\": \"@id\"\n    },\n    \"cnf\": {\n      \"@id\": \"https://www.iana.org/assignments/jwt#cnf\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"kid\": {\n          \"@id\": \"https://www.iana.org/assignments/jwt#kid\",\n          \"@type\": \"@id\"\n        },\n        \"jwk\": {\n          \"@id\": \"https://www.iana.org/assignments/jwt#jwk\",\n          \"@type\": \"@json\"\n        }\n      }\n    },\n    \"exp\": {\n      \"@id\": \"https://www.iana.org/assignments/jwt#exp\",\n      \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n    },\n    \"iat\": {\n      \"@id\": \"https://www.iana.org/assignments/jwt#iat\",\n      \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n    },\n    \"iss\": {\n      \"@id\": \"https://www.iana.org/assignments/jose#iss\",\n      \"@type\": \"@id\"\n    },\n    \"jku\": {\n      \"@id\": \"https://www.iana.org/assignments/jose#jku\",\n      \"@type\": \"@id\"\n    },\n    \"kid\": {\n      \"@id\": \"https://www.iana.org/assignments/jose#kid\",\n      \"@type\": \"@id\"\n    },\n    \"nbf\": {\n      \"@id\": \"https://www.iana.org/assignments/jwt#nbf\",\n      \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n    },\n    \"sub\": {\n      \"@id\": \"https://www.iana.org/assignments/jose#sub\",\n      \"@type\": \"@id\"\n    },\n    \"x5u\": {\n      \"@id\": \"https://www.iana.org/assignments/jose#x5u\",\n      \"@type\": \"@id\"\n    }\n  }\n}\n","/**\n * @public\n */\nexport * from './suites'\nexport * from './ld-credential-module'\nexport * from './ld-context-loader'\nexport * from './ld-suite-loader'\nexport * from './ld-default-contexts'\nexport * from './ld-document-loader'\nexport * from './ld-suites'\nexport * from './agent'\nexport * from './enums'\n","import { Ed25519Signature2018 } from '@digitalbazaar/ed25519-signature-2018'\nimport type { IKey, TKeyType } from '@veramo/core'\nimport { asArray } from '@veramo/utils'\nimport suiteContext2018 from 'ed25519-signature-2018-context'\n// @ts-ignore\nimport * as u8a from 'uint8arrays'\nimport { Ed25519VerificationKey2018 } from '@digitalbazaar/ed25519-verification-key-2018'\n// const Ed25519Signature2018 = await import('@digitalbazaar/ed25519-signature-2018')\nimport { SphereonLdSignature } from '../ld-suites'\nimport type { DIDDocument } from 'did-resolver'\nimport { base64ToBytes, bytesToBase64, VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nexport class SphereonEd25519Signature2018 extends SphereonLdSignature {\n  constructor() {\n    super()\n    // Ensure it is loaded\n    suiteContext2018?.constants\n  }\n\n  getSupportedVerificationType(): string {\n    return 'Ed25519VerificationKey2018'\n  }\n\n  getSupportedProofType(): string {\n    return 'Ed25519Signature2018'\n  }\n  getSupportedKeyType(): TKeyType {\n    return 'Ed25519'\n  }\n\n  getContext(): string {\n    return 'https://w3id.org/security/suites/ed25519-2018/v1'\n  }\n\n  getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any {\n    const controller = issuerDid\n\n    // DID Key ID\n    const id = verificationMethodId\n\n    const signer = {\n      // returns a JWS detached\n      sign: async (args: { data: Uint8Array }): Promise<Uint8Array> => {\n        const messageString = bytesToBase64(args.data)\n        const signature = await context.agent.keyManagerSign({\n          keyRef: key.kid,\n          algorithm: 'EdDSA',\n          data: messageString,\n          encoding: 'base64',\n        })\n        return base64ToBytes(signature)\n      },\n    }\n\n    const options = {\n      id,\n      controller,\n      publicKeyBase58: u8a.toString(u8a.fromString(key.publicKeyHex, 'base16'), 'base58btc'),\n      signer: signer,\n      type: this.getSupportedVerificationType(),\n    }\n\n    // For now we always go through this route given the multibase key has an invalid header\n    const verificationKey = new Ed25519VerificationKey2018(options)\n    // overwrite the signer since we're not passing the private key and transmute doesn't support that behavior\n    verificationKey.signer = () => signer as any\n    // verificationKey.type = this.getSupportedVerificationType()*/\n\n    return new Ed25519Signature2018({ key: verificationKey, signer: signer })\n  }\n\n  preVerificationCredModification(credential: VerifiableCredentialSP): void {\n    const vcJson = JSON.stringify(credential)\n    if (vcJson.indexOf('Ed25519Signature2018 DISABLED') > -1) {\n      if (vcJson.indexOf(this.getContext()) === -1) {\n        credential['@context'] = [...asArray(credential['@context'] || []), this.getContext()]\n      }\n      // Gives a JSON-LD redefinement on a protected term. Probably better to not have the Es25519Signature2018 context though!\n      const v1Idx = vcJson.indexOf('https://w3id.org/security/v1')\n      if (v1Idx > -1 && Array.isArray(credential['@context'])) {\n        delete credential['@context'][v1Idx]\n      }\n      const v3Idx = vcJson.indexOf('https://w3id.org/security/v3-unstable')\n      if (v3Idx === -1 && Array.isArray(credential['@context'])) {\n        credential['@context'].push('https://w3id.org/security/v3-unstable')\n      }\n    }\n  }\n\n  getSuiteForVerification(): any {\n    return new Ed25519Signature2018()\n  }\n\n  // preSigningCredModification(credential: CredentialPayload): void {\n  preSigningCredModification(): void {\n    // nothing to do here\n  }\n\n  // preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void {\n  preDidResolutionModification(didUrl: string, didDoc: DIDDocument) {\n    /*const vcJson = JSON.stringify(didDoc)\n    if (vcJson.indexOf('Ed25519Signature2018') > -1) {\n      if (vcJson.indexOf(this.getContext()) === -1) {\n        didDoc['@context'] = [...asArray(didDoc['@context'] || []), this.getContext()]\n      }\n    }*/\n  }\n}\n","import type { CredentialPayload, IKey, PresentationPayload, TKeyType } from '@veramo/core'\n// @ts-ignore\nimport type { DIDDocument } from 'did-resolver/lib/resolver'\nimport { IVcdmIssuerAgentContext, IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\n\n// export type RequiredAgentMethods = IResolver & IDIDManager & Pick<ISphereonKeyManager, 'keyManagerGet' | 'keyManagerSign' | 'keyManagerVerify'>\n\nexport abstract class SphereonLdSignature {\n  // LinkedDataSignature Suites according to\n  // https://github.com/digitalbazaar/jsonld-signatures/blob/main/lib/suites/LinkedDataSignature\n  // Add type definition as soon as https://github.com/digitalbazaar/jsonld-signatures\n  // supports those.\n\n  abstract getSupportedVerificationType(): string | string[]\n\n  abstract getSupportedProofType(): string\n\n  abstract getSupportedKeyType(): TKeyType\n\n  abstract getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any\n\n  abstract getContext(): string\n\n  abstract getSuiteForVerification(context: IVcdmVerifierAgentContext): any\n\n  abstract preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void\n\n  abstract preSigningCredModification(credential: CredentialPayload): void\n\n  abstract preVerificationCredModification(credential: VerifiableCredentialSP): void\n\n  preSigningPresModification(presentation: PresentationPayload): void {\n    // TODO: Remove invalid field 'verifiers' from Presentation. Needs to be adapted for LD verifiableCredentials\n    // Only remove empty array (vc.signPresentation will throw then)\n    const sanitizedPresentation = presentation as any\n    if (sanitizedPresentation?.verifier?.length == 0) {\n      delete sanitizedPresentation.verifier\n    }\n  }\n}\n","import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020'\nimport { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020'\nimport { base64ToBytes, bytesToBase64, hexToMultibase, VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\nimport type { IKey, TKeyType } from '@veramo/core'\nimport suiteContext2020 from 'ed25519-signature-2020-context'\n\nimport { SphereonLdSignature } from '../ld-suites'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nexport class SphereonEd25519Signature2020 extends SphereonLdSignature {\n  constructor() {\n    super()\n    // Ensure it is loaded\n    suiteContext2020?.constants\n  }\n\n  getSupportedVerificationType(): string[] {\n    return ['Ed25519VerificationKey2020', 'Ed25519VerificationKey2018']\n  }\n\n  getSupportedProofType(): string {\n    return 'Ed25519Signature2020'\n  }\n\n  getSupportedKeyType(): TKeyType {\n    return 'Ed25519'\n  }\n\n  getContext(): string {\n    return 'https://w3id.org/security/suites/ed25519-2020/v1'\n  }\n\n  getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any {\n    const controller = issuerDid\n\n    // DID Key ID\n    const id = verificationMethodId\n\n    const signer = {\n      // returns a JWS detached\n      sign: async (args: { data: Uint8Array }): Promise<Uint8Array> => {\n        const messageString = bytesToBase64(args.data)\n        const signature = await context.agent.keyManagerSign({\n          keyRef: key.kid,\n          algorithm: 'EdDSA',\n          data: messageString,\n          encoding: 'base64',\n        })\n        return base64ToBytes(signature)\n      },\n    }\n\n    const options = {\n      id: id,\n      controller: controller,\n      publicKeyMultibase: hexToMultibase(key.publicKeyHex, key.type).value,\n      signer: () => signer,\n      type: this.getSupportedVerificationType(),\n    }\n\n    // For now we always go through this route given the multibase key has an invalid header\n    const verificationKey = new Ed25519VerificationKey2020(options)\n    // overwrite the signer since we're not passing the private key and transmute doesn't support that behavior\n    verificationKey.signer = () => signer as any\n    // verificationKey.type = this.getSupportedVerificationType()\n\n    return new Ed25519Signature2020({\n      key: verificationKey,\n      signer: signer,\n    })\n  }\n  preVerificationCredModification(credential: VerifiableCredentialSP): void {\n    /* const vcJson = JSON.stringify(credential)\n    if (vcJson.indexOf('Ed25519Signature2020') > -1) {\n      if (vcJson.indexOf(this.getContext()) === -1) {\n        credential['@context'] = [...asArray(credential['@context'] || []), this.getContext()]\n      }\n    }*/\n  }\n\n  getSuiteForVerification(): any {\n    return new Ed25519Signature2020()\n  }\n\n  // preSigningCredModification(_credential: CredentialPayload): void {}\n  preSigningCredModification(): void {}\n\n  // preDidResolutionModification(_didUrl: string, _didDoc: DIDDocument): void {\n  preDidResolutionModification(): void {\n    // nothing to do here\n  }\n}\n","import type { CredentialPayload, DIDDocument, IKey, TKeyType } from '@veramo/core'\nimport { asArray, encodeJoseBlob } from '@veramo/utils'\nimport ldsEcdsa from '@veramo-community/lds-ecdsa-secp256k1-recovery2020'\n// @ts-ignore\nimport { concat as concatArrays } from 'uint8arrays/concat'\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\nimport { SphereonLdSignature } from '../ld-suites'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nconst { EcdsaSecp256k1RecoveryMethod2020, EcdsaSecp256k1RecoverySignature2020 } = ldsEcdsa\n\nexport class SphereonEcdsaSecp256k1RecoverySignature2020 extends SphereonLdSignature {\n  getSupportedVerificationType(): string {\n    return 'EcdsaSecp256k1RecoveryMethod2020'\n  }\n\n  getSupportedProofType(): string {\n    return 'EcdsaSecp256k1RecoverySignature2020'\n  }\n\n  getSupportedKeyType(): TKeyType {\n    return 'Secp256k1'\n  }\n\n  getSuiteForSigning(key: IKey, did: string, verifiableMethodId: string, context: IVcdmIssuerAgentContext): any {\n    const controller = did\n    const signer = {\n      //returns a JWS detached\n      sign: async (args: { data: Uint8Array }): Promise<string> => {\n        const header = {\n          alg: 'ES256K-R',\n          b64: false,\n          crit: ['b64'],\n        }\n        const headerString = encodeJoseBlob(header)\n        const messageBuffer = concatArrays([fromString(`${headerString}.`, 'utf-8'), args.data])\n        const signature = await context.agent.keyManagerSign({\n          keyRef: key.kid,\n          algorithm: 'ES256K-R',\n          data: messageBuffer,\n          encoding: 'base64',\n        })\n        return `${headerString}..${signature}`\n      },\n    }\n\n    const suite = new EcdsaSecp256k1RecoverySignature2020({\n      // signer,\n      key: new EcdsaSecp256k1RecoveryMethod2020({\n        publicKeyHex: key.publicKeyHex,\n        signer: () => signer,\n        type: this.getSupportedVerificationType(),\n        controller,\n        id: verifiableMethodId,\n      }),\n    })\n\n    suite.ensureSuiteContext = ({ document }: { document: any; addSuiteContext: boolean }) => {\n      document['@context'] = [...asArray(document['@context'] || []), this.getContext()]\n    }\n\n    return suite\n  }\n\n  getSuiteForVerification(): any {\n    return new EcdsaSecp256k1RecoverySignature2020()\n  }\n\n  preVerificationCredModification(): void {}\n\n  preSigningCredModification(credential: CredentialPayload): void {\n    credential['@context'] = [\n      ...asArray(credential['@context'] || []),\n      'https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld',\n    ]\n  }\n\n  preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void {\n    const idx =\n      didDoc['@context']?.indexOf('https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld') || -1\n    if (Array.isArray(didDoc['@context']) && idx !== -1) {\n      didDoc['@context'][idx] = this.getContext()\n    }\n    // did:ethr\n    if (didUrl.toLowerCase().startsWith('did:ethr')) {\n      // TODO: EcdsaSecp256k1RecoveryMethod2020 does not support blockchainAccountId\n      // blockchainAccountId to ethereumAddress\n      didDoc.verificationMethod?.forEach((x) => {\n        if (x.blockchainAccountId) {\n          x.ethereumAddress = x.blockchainAccountId.substring(0, x.blockchainAccountId.lastIndexOf('@'))\n        }\n      })\n    }\n  }\n\n  getContext(): string {\n    return 'https://w3id.org/security/suites/secp256k1recovery-2020/v2'\n  }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\nimport * as vc from '@digitalcredentials/vc'\nimport { contextHasPlugin } from '@sphereon/ssi-sdk.agent-config'\nimport type { VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\nimport type { IIssueCredentialStatusOpts, IStatusListPlugin } from '@sphereon/ssi-sdk.vc-status-list'\nimport type { IVerifyResult, W3CVerifiablePresentation } from '@sphereon/ssi-types'\nimport type { CredentialPayload, IKey, PresentationPayload } from '@veramo/core'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from './ld-context-loader'\nimport { LdDocumentLoader } from './ld-document-loader'\nimport { LdSuiteLoader } from './ld-suite-loader'\nimport { IVcdmIssuerAgentContext, IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { events } from './enums'\n\nconst { purposes } = sigpkg\n\n// import jsigs from '@digitalcredentials/jsonld-signatures'\n//Support for Typescript added in version 9.0.0\n// eslint-disable-next-line @typescript-eslint/no-var-requires\n// const jsigs = require('jsonld-signatures')\n\nconst ProofPurpose = purposes.ProofPurpose\nconst AssertionProofPurpose = purposes.AssertionProofPurpose\nconst AuthenticationProofPurpose = purposes.AuthenticationProofPurpose\n\nconst debug = Debug('sphereon:ssi-sdk:ld-credential-module-local')\n\nexport class LdCredentialModule {\n  /**\n   * TODO: General Implementation Notes\n   * - (SOLVED) EcdsaSecp256k1Signature2019 (Signature) and EcdsaSecp256k1VerificationKey2019 (Key)\n   * are not useable right now, since they are not able to work with blockChainId and ECRecover.\n   * - DID Fragment Resolution.\n   * - Key Manager and Verification Methods: Veramo currently implements no link between those.\n   */\n\n  ldSuiteLoader: LdSuiteLoader\n  private ldDocumentLoader: LdDocumentLoader\n\n  constructor(options: {\n    ldContextLoader: LdContextLoader\n    ldSuiteLoader: LdSuiteLoader\n    documentLoader?: {\n      localResolution?: boolean // Resolve identifiers hosted by the agent\n      uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n      resolverResolution?: boolean // Use registered drivers\n    }\n  }) {\n    this.ldSuiteLoader = options.ldSuiteLoader\n    this.ldDocumentLoader = new LdDocumentLoader(options)\n  }\n\n  async issueLDVerifiableCredential(\n    args: {\n      credential: CredentialPayload\n      issuerDid: string\n      key: IKey\n      verificationMethodId: string\n      purpose: typeof ProofPurpose\n      credentialStatusOpts?: IIssueCredentialStatusOpts\n    },\n    context: IVcdmIssuerAgentContext,\n  ): Promise<VerifiableCredentialSP> {\n    const { key, issuerDid, verificationMethodId, credential } = args\n    const purpose = args.purpose\n    debug(`Issue VC method called for ${key.kid}...`)\n    // TODO: try multiple matching suites until one works or list is exhausted\n    const suite = this.ldSuiteLoader.getSignatureSuiteForKeyType(key.type, key.meta?.verificationMethod?.type ?? '')[0]\n\n    const documentLoader = this.ldDocumentLoader.getLoader(context, {\n      attemptToFetchContexts: true,\n      verifiableData: credential,\n    })\n\n    // some suites can modify the incoming credential (e.g. add required contexts)\n    suite.preSigningCredModification(credential)\n    debug(`Signing suite will be retrieved for ${verificationMethodId}...`)\n    const signingSuite = await suite.getSuiteForSigning(key, issuerDid, verificationMethodId, context)\n    debug(`Issuer ${issuerDid} will create VC for ${key.kid}...`)\n    if (contextHasPlugin<IVcdmIssuerAgentContext & IStatusListPlugin>(context, 'slAddStatusToCredential')) {\n      // Handle status list if enabled\n      // We do some additional check to determine whether we will call the below method, as the OID4VCI or W3C-VC API could also have called the method already\n      if (credential.credentialStatus && !credential.credentialStatus.statusListCredential) {\n        const credentialStatusVC = await context.agent.slAddStatusToCredential({ ...args.credentialStatusOpts, credential })\n        if (credentialStatusVC.credentialStatus) {\n          credential.credentialStatus = credentialStatusVC.credentialStatus\n        }\n      }\n    }\n\n    let verifiableCredential\n    //Needs to be signed using jsonld-signaures@5.0.1\n    if (key.type === 'Bls12381G2') {\n      verifiableCredential = await sigpkg.jsigs.sign(credential, {\n        suite: signingSuite,\n        purpose,\n        documentLoader,\n        compactProof: true,\n      })\n    } else {\n      verifiableCredential = await vc.issue({\n        credential,\n        purpose,\n        suite: signingSuite,\n        documentLoader,\n        compactProof: false,\n      })\n    }\n    debug(`Issuer ${issuerDid} created VC for ${key.kid}`)\n    return verifiableCredential\n  }\n\n  async signLDVerifiablePresentation(\n    presentation: PresentationPayload,\n    holderDid: string,\n    key: IKey,\n    verificationMethodId: string,\n    challenge: string | undefined,\n    domain: string | undefined,\n    purpose: typeof ProofPurpose = !challenge // domain is not a mandatory var for AuthenticationProofPurpose per se, but challenge is.\n      ? new AssertionProofPurpose()\n      : new AuthenticationProofPurpose({\n          domain,\n          challenge,\n        }),\n    context: IVcdmIssuerAgentContext,\n  ): Promise<VerifiablePresentationSP> {\n    // TODO: try multiple matching suites until one works or list is exhausted\n    const suite = this.ldSuiteLoader.getSignatureSuiteForKeyType(key.type, key.meta?.verificationMethod?.type ?? '')[0]\n    const documentLoader = this.ldDocumentLoader.getLoader(context, {\n      attemptToFetchContexts: true,\n      verifiableData: presentation,\n    })\n\n    suite.preSigningPresModification(presentation)\n\n    if (key.type === 'Bls12381G2') {\n      return await sigpkg.jsigs.sign(presentation, {\n        suite: await suite.getSuiteForSigning(key, holderDid, verificationMethodId, context),\n        purpose,\n        documentLoader,\n        compactProof: true,\n      })\n    }\n    return await vc.signPresentation({\n      presentation,\n      suite: await suite.getSuiteForSigning(key, holderDid, verificationMethodId, context),\n      challenge,\n      domain,\n      documentLoader,\n      purpose,\n      compactProof: false,\n    })\n  }\n\n  async verifyCredential(\n    credential: VerifiableCredentialSP,\n    context: IVcdmVerifierAgentContext,\n    fetchRemoteContexts = false,\n    purpose: typeof ProofPurpose = new AssertionProofPurpose(),\n    checkStatus?: Function,\n  ): Promise<IVerifyResult> {\n    const verificationSuites = this.getAllVerificationSuites(context)\n    this.ldSuiteLoader.getAllSignatureSuites().forEach((suite) => suite.preVerificationCredModification(credential))\n    // let result: IVerifyResult\n    const documentLoader = this.ldDocumentLoader.getLoader(context, {\n      attemptToFetchContexts: fetchRemoteContexts,\n      verifiableData: credential,\n    })\n    /*\n    const isBls = credential.proof.type?.includes('BbsBlsSignature2020')\n    const suite = isBls\n      ? (this.ldSuiteLoader\n          .getAllSignatureSuites()\n          .find((s) => s.getSupportedVeramoKeyType() === 'Bls12381G2')\n          ?.getSuiteForVerification(context) as BbsBlsSignature2020)\n      : verificationSuites\n    context.agent\n    if (isBls) {\n      // fixme: check signature of verify method, adjust result if needed\n      result = await jsigs.verify(credential, {\n        suite,\n        purpose,\n        documentLoader,\n        compactProof: true,\n      })\n    } else {*/\n    const result = await vc.verifyCredential({\n      credential,\n      suite: verificationSuites,\n      documentLoader,\n      purpose,\n      compactProof: false,\n      checkStatus,\n    })\n    // }\n    if (result.verified) {\n      void context.agent.emit(events.CREDENTIAL_VERIFIED, { credential, ...result })\n    } else {\n      // result can include raw Error\n      debug(`Error verifying LD Verifiable Credential: ${JSON.stringify(result, null, 2)}`)\n      console.log(`ERROR verifying LD VC:\\n${JSON.stringify(result, null, 2)}`)\n      void context.agent.emit(events.CREDENTIAL_VERIFY_FAILED, { credential, ...result })\n    }\n    return result\n  }\n\n  private getAllVerificationSuites(context: IVcdmVerifierAgentContext) {\n    return this.ldSuiteLoader.getAllSignatureSuites().map((x) => x.getSuiteForVerification(context))\n  }\n\n  async verifyPresentation(\n    presentation: VerifiablePresentationSP | W3CVerifiablePresentation,\n    challenge: string | undefined,\n    domain: string | undefined,\n    context: IVcdmVerifierAgentContext,\n    fetchRemoteContexts = false,\n    presentationPurpose: typeof ProofPurpose = !challenge // domain is not a mandatory var for AuthenticationProofPurpose per se, but challenge is.\n      ? new AssertionProofPurpose()\n      : new AuthenticationProofPurpose({ domain, challenge }),\n    checkStatus?: Function,\n    //AssertionProofPurpose()\n  ): Promise<IVerifyResult> {\n    if (typeof presentation === 'string') {\n      return {\n        verified: false,\n        error: {\n          message: 'Cannot verify a jwt/string presentation with the jsonld verifier',\n        },\n      }\n    }\n    /* let result: IVerifyResult\n    if (presentation.proof.type?.includes('BbsBlsSignature2020')) {\n      //Should never be null or undefined\n      const suite = this.ldSuiteLoader\n        .getAllSignatureSuites()\n        .find((s) => s.getSupportedVeramoKeyType() === 'Bls12381G2')\n        ?.getSuiteForVerification(context) as BbsBlsSignature2020\n      result = await jsigs.verify(presentation, {\n        suite,\n        purpose: presentationPurpose,\n        documentLoader: this.ldDocumentLoader.getLoader(context, {\n          attemptToFetchContexts: fetchRemoteContexts,\n          verifiableData: presentation,\n        }),\n        compactProof: true,\n      })\n    } else {*/\n    const result = await vc.verify({\n      presentation,\n      suite: this.getAllVerificationSuites(context),\n      documentLoader: this.ldDocumentLoader.getLoader(context, {\n        attemptToFetchContexts: fetchRemoteContexts,\n        verifiableData: presentation as VerifiablePresentationSP,\n      }),\n      challenge,\n      domain,\n      presentationPurpose,\n      compactProof: false,\n      checkStatus,\n    })\n    // }\n\n    if (result.verified && (!result.presentationResult || result.presentationResult.verified)) {\n      context.agent.emit(events.PRESENTATION_VERIFIED, { presentation, ...result })\n    } else {\n      // NOT verified.\n      debug(`Error verifying LD Verifiable Presentation: ${JSON.stringify(result, null, 2)}`)\n      context.agent.emit(events.PRESENTATION_VERIFY_FAILED, { presentation, ...result })\n    }\n    return result\n  }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\nimport * as vc from '@digitalcredentials/vc'\nimport type { CredentialPayload, DIDDocument, IAgentContext, PresentationPayload, VerifiableCredential, VerifiablePresentation } from '@veramo/core'\nimport fetch from 'cross-fetch'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from './ld-context-loader'\nimport { LdSuiteLoader } from './ld-suite-loader'\nimport { getAgentResolver } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\n\nconst debug = Debug('sphereon:ssi-sdk:credential-jsonld')\n\n/**\n * Initializes a list of Veramo-wrapped LD Signature suites and exposes those to the Agent Module\n */\nexport class LdDocumentLoader {\n  private readonly ldContextLoader: LdContextLoader\n  ldSuiteLoader: LdSuiteLoader\n  private readonly localResolution?: boolean\n  private readonly uniresolverResolution?: boolean\n  private readonly resolverResolution?: boolean\n\n  constructor(options: {\n    ldContextLoader: LdContextLoader\n    ldSuiteLoader: LdSuiteLoader\n    documentLoader?: {\n      localResolution?: boolean // Resolve identifiers hosted by the agent\n      uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n      resolverResolution?: boolean // Use registered drivers\n    }\n  }) {\n    this.ldContextLoader = options.ldContextLoader\n    this.ldSuiteLoader = options.ldSuiteLoader\n    this.localResolution = options?.documentLoader?.localResolution\n    this.uniresolverResolution = options?.documentLoader?.uniresolverResolution\n    this.resolverResolution = options?.documentLoader?.resolverResolution\n  }\n\n  getLoader(\n    context: IVcdmVerifierAgentContext,\n    {\n      attemptToFetchContexts = false,\n      verifiableData,\n    }: {\n      attemptToFetchContexts: boolean\n      verifiableData:\n        | VerifiableCredential\n        | VerifiableCredentialSP\n        | VerifiablePresentation\n        | VerifiablePresentationSP\n        | CredentialPayload\n        | PresentationPayload\n    },\n  ) {\n    return sigpkg.extendContextLoader(async (url: string) => {\n      if (!url || url.trim().length === 0) {\n        throw Error('URL needs to be provided to load a context!')\n      }\n\n      if (url.startsWith('#') && verifiableData.issuer !== undefined) {\n        url = (typeof verifiableData.issuer === 'string' ? verifiableData.issuer : verifiableData.issuer.id) + url\n        debug(url)\n      }\n      // did resolution\n      if (url.toLowerCase().startsWith('did:')) {\n        // const parsedDID = parseDid(url)\n        const resolutionResult = await getAgentResolver(context as IAgentContext<any>, {\n          localResolution: this.localResolution,\n          resolverResolution: this.resolverResolution,\n          uniresolverResolution: this.uniresolverResolution,\n        }).resolve(url)\n        // context.agent.resolveDid({didUrl: url})\n        let didDoc: DIDDocument | null = resolutionResult.didDocument\n        if (!didDoc) {\n          throw new Error(`Could not fetch DID document with url: ${url}. Did you enable the the driver?`)\n        }\n        // currently Veramo LD suites can modify the resolution response for DIDs from\n        // the document Loader. This allows to fix incompatibilities between DID Documents\n        // and LD suites to be fixed specifically within the Veramo LD Suites definition\n        this.ldSuiteLoader.getAllSignatureSuites().forEach((x) => x.preDidResolutionModification(url, didDoc as DIDDocument))\n\n        // Move legacy publicKey to verificationMethod, so any dependency that does not support it, keeps functioning\n        if (didDoc.publicKey) {\n          if (!didDoc.verificationMethod) {\n            didDoc.verificationMethod = []\n          }\n          didDoc.verificationMethod = [...didDoc.verificationMethod, ...didDoc.publicKey]\n          if (didDoc.verificationMethod.length === 0) {\n            throw new Error(`No verification method available for ${url}`)\n          }\n          delete didDoc.publicKey\n        }\n\n        const origUrl = url\n        if (url.indexOf('#') > 0 && didDoc && typeof didDoc === 'object' && '@context' in didDoc /*&& url.startsWith('did:oyd:')*/) {\n          // Apparently we got a whole DID document, but we are looking for a verification method\n          // We use origUrl here, as that is how it was used in the VM\n          const component = await context.agent.getDIDComponentById({ didDocument: didDoc, didUrl: origUrl })\n          debug('OYD DID component:')\n          debug(JSON.stringify(component))\n          if (component && typeof component !== 'string' && component.id) {\n            // We have to provide a context\n            const contexts = this.ldSuiteLoader\n              .getAllSignatureSuites()\n              .filter((x) => x.getSupportedVerificationType() === component.type)\n              .filter((value, index, self) => self.indexOf(value) === index)\n              .map((value) => value.getContext())\n            const fragment = {\n              ...component,\n              ...(Array.isArray(contexts) && contexts.length > 0 ? { '@context': contexts } : { '@context': didDoc['@context'] }),\n            }\n\n            return {\n              contextUrl: null,\n              documentUrl: url,\n              document: fragment,\n            }\n          }\n        }\n\n        return {\n          contextUrl: null,\n          documentUrl: url,\n          document: didDoc,\n        }\n      }\n\n      if (this.ldContextLoader.has(url)) {\n        const contextDoc = await this.ldContextLoader.get(url)\n        return {\n          contextUrl: null,\n          documentUrl: url,\n          document: contextDoc,\n        }\n      } else {\n        if (attemptToFetchContexts) {\n          debug('WARNING: attempting to fetch the doc directly for ', url)\n          try {\n            const response = await fetch(url, { redirect: 'follow' })\n            if (response.status === 200) {\n              const document = await response.json()\n              // fixme: The VC API returns an _id object for RL Credentials, which is not allowed, so delete it here for now\n              if (url.startsWith('https://vc-api.sphereon.io/services/credentials/')) {\n                delete document._id\n              }\n              return {\n                contextUrl: null,\n                documentUrl: url,\n                document,\n              }\n            }\n          } catch (e) {\n            debug('WARNING: unable to fetch the doc or interpret it as JSON', e)\n          }\n        }\n      }\n\n      debug(`WARNING: Possible unknown context/identifier for ${url} \\n falling back to default documentLoader`)\n\n      return vc.defaultDocumentLoader(url)\n    })\n  }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\n\nexport const ProofPurpose = sigpkg.purposes.ProofPurpose\nexport const ControllerProofPurpose = sigpkg.purposes.ControllerProofPurpose\nexport const AssertionProofPurpose = sigpkg.purposes.AssertionProofPurpose\nexport const AuthenticationProofPurpose = sigpkg.purposes.AuthenticationProofPurpose\n\n/**\n * Plugin method map interface\n * @public\n */\nexport enum MethodNames {\n  createVerifiableCredential = 'createVerifiableCredential',\n  createVerifiablePresentation = 'createVerifiablePresentation',\n  verifyCredential = 'verifyCredential',\n  verifyPresentation = 'verifyPresentation',\n}\n\nexport type IBindingOverrides = Map<string, MethodNames>\n\nexport enum events {\n  CREDENTIAL_ISSUED = 'credentialIssued',\n  CREDENTIAL_VERIFIED = 'credentialVerified',\n  PRESENTATION_VERIFIED = 'presentationVerified',\n  PRESENTATION_VERIFY_FAILED = 'presentationVerificationFailed',\n  CREDENTIAL_VERIFY_FAILED = 'credentialVerificationFailed',\n}\n","/**\n * The LdContextLoader is initialized with a List of Map<string, ContextDoc | Promise<ContextDoc>>\n * that it unifies into a single Map to provide to the documentLoader within\n * the w3c credential module.\n */\nimport { ContextDoc } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { isIterable, type OrPromise, type RecordLike } from '@veramo/utils'\n\nexport class LdContextLoader {\n  private readonly contexts: Record<string, OrPromise<ContextDoc>>\n\n  constructor(options: { contextsPaths: RecordLike<OrPromise<ContextDoc>>[] }) {\n    this.contexts = {}\n    Array.from(options.contextsPaths, (mapItem) => {\n      const map = isIterable(mapItem) ? mapItem : Object.entries(mapItem)\n      // generate-plugin-schema is failing unless we use the cast to `any[]`\n      for (const [key, value] of map as any[]) {\n        this.contexts[key] = value\n      }\n    })\n  }\n\n  has(url: string): boolean {\n    return this.contexts[url] !== null && typeof this.contexts[url] !== 'undefined'\n  }\n\n  async get(url: string): Promise<ContextDoc> {\n    return this.contexts[url]\n  }\n}\n","import type { TKeyType } from '@veramo/core'\n\nimport { SphereonLdSignature } from './ld-suites'\nimport { asArray } from '@sphereon/ssi-sdk.core'\n\n/**\n * Initializes a list of Veramo-wrapped LD Signature suites and exposes those to the Agent Module\n */\n// const debug = Debug('sphereon:ssi-sdk-credential-jsonld')\nexport class LdSuiteLoader {\n  constructor(options: { ldSignatureSuites: SphereonLdSignature[] }) {\n    options.ldSignatureSuites.forEach((suite) => {\n      const keyType = suite.getSupportedKeyType()\n      // this.signatureMap[keyType] = suite\n      let verifierMapping = this.signatureMap[keyType] ?? {}\n      asArray<string>(suite.getSupportedVerificationType()).forEach((verificationType: string) => {\n        verifierMapping[verificationType] = [...(verifierMapping[verificationType] ?? []), suite]\n      })\n      return (this.signatureMap[keyType] = { ...this.signatureMap[keyType], ...verifierMapping })\n      /*if (verificationType !== keyType) {\n        if (this.signatureMap[verificationType]) {\n          throw Error(`Cannot register 2 suites for the same type ${verificationType}`)\n        }\n        this.signatureMap[verificationType] = suite\n      }*/\n    })\n  }\n\n  private signatureMap: Record<string, Record<string, SphereonLdSignature[]>> = {}\n\n  getSignatureSuiteForKeyType(keyType: TKeyType, verificationType?: string): SphereonLdSignature[] {\n    // Always use verification type if supplied. This is the type denoted by the DID verification method type.\n    // The only exception is JsonWebKey. We do not have a signature suite anymore for that (discontinued), so we take the first verification suite in that case. Just like no verification method was supplied\n    const verificationToSuites = this.signatureMap[keyType]\n    const suites =\n      verificationType && verificationType !== '' && verificationType !== 'JsonWebKey2020'\n        ? verificationToSuites[verificationType]\n        : Object.values(verificationToSuites ?? {})?.[0]\n    // const suite = this.signatureMap[keyType]?.[verificationType]\n    if (Array.isArray(suites) && suites.length > 0) {\n      return suites\n    }\n    throw new Error(\n      `No Sphereon or Veramo LD Signature Suite for ${keyType} and verification type ${verificationType ?? '<none>'}. Available suites:\\n ${Object.entries(\n        this.signatureMap,\n      )\n        .map(\n          ([kt, record]) =>\n            `\\nKeyType:${kt}\\n    => ${Object.entries(record)\n              .map(\n                ([verificationType, suites]) =>\n                  `\\n    verification-type: ${verificationType}\\n       => proof-types: ${suites.map((suite) => suite.getSupportedProofType()).join(', ')}`,\n              )\n              .join(', ')}`,\n        )\n        .join(', ')}`,\n    )\n  }\n\n  getAllSignatureSuites(): SphereonLdSignature[] {\n    return [\n      ...new Set(\n        Object.values(this.signatureMap)\n          .map((x) => Object.values(x))\n          .flat(2),\n      ),\n    ]\n  }\n\n  getAllSignatureSuiteTypes(): string[] {\n    return [\n      ...new Set(\n        Object.values(this.signatureMap)\n          .map((x) => Object.keys(x))\n          .flat(),\n      ),\n    ]\n  }\n}\n","{\n  \"@context\": {\n    \"@version\": 1.1,\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n    \"BbsBlsSignature2020\": {\n      \"@id\": \"https://w3id.org/security#BbsBlsSignature2020\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"challenge\": \"https://w3id.org/security#challenge\",\n        \"created\": {\n          \"@id\": \"http://purl.org/dc/terms/created\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"domain\": \"https://w3id.org/security#domain\",\n        \"proofValue\": \"https://w3id.org/security#proofValue\",\n        \"nonce\": \"https://w3id.org/security#nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"https://w3id.org/security#proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n            \"assertionMethod\": {\n              \"@id\": \"https://w3id.org/security#assertionMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"authentication\": {\n              \"@id\": \"https://w3id.org/security#authenticationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            }\n          }\n        },\n        \"verificationMethod\": {\n          \"@id\": \"https://w3id.org/security#verificationMethod\",\n          \"@type\": \"@id\"\n        }\n      }\n    },\n    \"BbsBlsSignatureProof2020\": {\n      \"@id\": \"https://w3id.org/security#BbsBlsSignatureProof2020\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"challenge\": \"https://w3id.org/security#challenge\",\n        \"created\": {\n          \"@id\": \"http://purl.org/dc/terms/created\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"domain\": \"https://w3id.org/security#domain\",\n        \"nonce\": \"https://w3id.org/security#nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"https://w3id.org/security#proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n            \"sec\": \"https://w3id.org/security#\",\n            \"assertionMethod\": {\n              \"@id\": \"https://w3id.org/security#assertionMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"authentication\": {\n              \"@id\": \"https://w3id.org/security#authenticationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            }\n          }\n        },\n        \"proofValue\": \"https://w3id.org/security#proofValue\",\n        \"verificationMethod\": {\n          \"@id\": \"https://w3id.org/security#verificationMethod\",\n          \"@type\": \"@id\"\n        }\n      }\n    },\n    \"Bls12381G1Key2020\": {\n      \"@id\": \"https://w3id.org/security#Bls12381G1Key2020\",\n      \"@context\": {\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"controller\": {\n          \"@id\": \"https://w3id.org/security#controller\",\n          \"@type\": \"@id\"\n        },\n        \"revoked\": {\n          \"@id\": \"https://w3id.org/security#revoked\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"publicKeyBase58\": {\n          \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n        }\n      }\n    },\n    \"Bls12381G2Key2020\": {\n      \"@id\": \"https://w3id.org/security#Bls12381G2Key2020\",\n      \"@context\": {\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"controller\": {\n          \"@id\": \"https://w3id.org/security#controller\",\n          \"@type\": \"@id\"\n        },\n        \"revoked\": {\n          \"@id\": \"https://w3id.org/security#revoked\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"publicKeyBase58\": {\n          \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n        }\n      }\n    }\n  }\n}\n","{\n  \"@context\": {\n    \"@version\": 1.1,\n    \"@protected\": true,\n\n    \"name\": \"http://schema.org/name\",\n    \"description\": \"http://schema.org/description\",\n    \"identifier\": \"http://schema.org/identifier\",\n    \"image\": { \"@id\": \"http://schema.org/image\", \"@type\": \"@id\" },\n\n    \"PermanentResidentCard\": {\n      \"@id\": \"https://w3id.org/citizenship#PermanentResidentCard\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"description\": \"http://schema.org/description\",\n        \"name\": \"http://schema.org/name\",\n        \"identifier\": \"http://schema.org/identifier\",\n        \"image\": { \"@id\": \"http://schema.org/image\", \"@type\": \"@id\" }\n      }\n    },\n\n    \"PermanentResident\": {\n      \"@id\": \"https://w3id.org/citizenship#PermanentResident\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"ctzn\": \"https://w3id.org/citizenship#\",\n        \"schema\": \"http://schema.org/\",\n        \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n        \"birthCountry\": \"ctzn:birthCountry\",\n        \"birthDate\": { \"@id\": \"schema:birthDate\", \"@type\": \"xsd:dateTime\" },\n        \"commuterClassification\": \"ctzn:commuterClassification\",\n        \"familyName\": \"schema:familyName\",\n        \"gender\": \"schema:gender\",\n        \"givenName\": \"schema:givenName\",\n        \"lprCategory\": \"ctzn:lprCategory\",\n        \"lprNumber\": \"ctzn:lprNumber\",\n        \"residentSince\": { \"@id\": \"ctzn:residentSince\", \"@type\": \"xsd:dateTime\" }\n      }\n    },\n\n    \"Person\": \"http://schema.org/Person\"\n  }\n}\n","{\n  \"@context\": {\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n    \"@protected\": true,\n    \"proof\": {\n      \"@id\": \"https://w3id.org/security#proof\",\n      \"@type\": \"@id\",\n      \"@container\": \"@graph\"\n    },\n    \"Ed25519VerificationKey2020\": {\n      \"@id\": \"https://w3id.org/security#Ed25519VerificationKey2020\"\n    },\n    \"Ed25519Signature2020\": {\n      \"@id\": \"https://w3id.org/security#Ed25519Signature2020\",\n      \"@context\": {\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"challenge\": \"https://w3id.org/security#challenge\",\n        \"created\": {\n          \"@id\": \"http://purl.org/dc/terms/created\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"domain\": \"https://w3id.org/security#domain\",\n        \"expires\": {\n          \"@id\": \"https://w3id.org/security#expiration\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"nonce\": \"https://w3id.org/security#nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"https://w3id.org/security#proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n            \"assertionMethod\": {\n              \"@id\": \"https://w3id.org/security#assertionMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"authentication\": {\n              \"@id\": \"https://w3id.org/security#authenticationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityInvocation\": {\n              \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityDelegation\": {\n              \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"keyAgreement\": {\n              \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            }\n          }\n        },\n        \"proofValue\": {\n          \"@id\": \"https://w3id.org/security#proofValue\",\n          \"@type\": \"https://w3id.org/security#multibase\"\n        },\n        \"verificationMethod\": {\n          \"@id\": \"https://w3id.org/security#verificationMethod\",\n          \"@type\": \"@id\"\n        }\n      }\n    }\n  }\n}\n","{\n  \"@context\": {\n    \"@version\": 1.1,\n    \"@protected\": true,\n    \"Eip712SchemaValidator2021\": \"https://w3id.org/security#Eip712SchemaValidator2021\",\n    \"EthereumEip712Signature2021\": {\n      \"@id\": \"https://w3id.org/security#EthereumEip712Signature2021\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"created\": {\n          \"@id\": \"http://purl.org/dc/terms/created\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"domain\": \"https://w3id.org/security#domain\",\n        \"proofPurpose\": {\n          \"@id\": \"https://w3id.org/security#proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n            \"assertionMethod\": {\n              \"@id\": \"https://w3id.org/security#assertionMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"authentication\": {\n              \"@id\": \"https://w3id.org/security#authenticationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityInvocation\": {\n              \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityDelegation\": {\n              \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            }\n          }\n        },\n        \"eip712Domain\": {\n          \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#eip712-domain\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n            \"messageSchema\": {\n              \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#message-schema\",\n              \"@type\": \"@json\"\n            },\n            \"primaryType\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#primary-type\",\n            \"domain\": {\n              \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#domain\",\n              \"@type\": \"@json\"\n            }\n          }\n        },\n        \"eip712\": {\n          \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#eip712-domain\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n            \"types\": {\n              \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#message-schema\",\n              \"@type\": \"@json\"\n            },\n            \"primaryType\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#primary-type\",\n            \"domain\": {\n              \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#domain\",\n              \"@type\": \"@json\"\n            }\n          }\n        },\n        \"proofValue\": \"https://w3id.org/security#proofValue\",\n        \"verificationMethod\": {\n          \"@id\": \"https://w3id.org/security#verificationMethod\",\n          \"@type\": \"@id\"\n        },\n        \"canonicalizationHash\": \"https://w3id.org/security/suites/eip712sig-2021#canonicalizationHash\"\n      }\n    }\n  }\n}\n","{\n  \"@context\": {\n    \"@version\": 1.1,\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n    \"@protected\": true,\n    \"JsonWebKey2020\": {\n      \"@id\": \"https://w3id.org/security#JsonWebKey2020\"\n    },\n    \"JsonWebSignature2020\": {\n      \"@id\": \"https://w3id.org/security#JsonWebSignature2020\",\n      \"@context\": {\n        \"@version\": 1.1,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"@protected\": true,\n        \"challenge\": \"https://w3id.org/security#challenge\",\n        \"created\": {\n          \"@id\": \"http://purl.org/dc/terms/created\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"domain\": \"https://w3id.org/security#domain\",\n        \"expires\": {\n          \"@id\": \"https://w3id.org/security#expiration\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"jws\": \"https://w3id.org/security#jws\",\n        \"nonce\": \"https://w3id.org/security#nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"https://w3id.org/security#proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@version\": 1.1,\n            \"@protected\": true,\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n            \"assertionMethod\": {\n              \"@id\": \"https://w3id.org/security#assertionMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"authentication\": {\n              \"@id\": \"https://w3id.org/security#authenticationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityInvocation\": {\n              \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityDelegation\": {\n              \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"keyAgreement\": {\n              \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            }\n          }\n        },\n        \"verificationMethod\": {\n          \"@id\": \"https://w3id.org/security#verificationMethod\",\n          \"@type\": \"@id\"\n        }\n      }\n    }\n  }\n}\n","{\n  \"@context\": {\n    \"@version\": 1.1,\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n    \"esrs2020\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#\",\n    \"EcdsaSecp256k1RecoverySignature2020\": \"esrs2020:EcdsaSecp256k1RecoverySignature2020\",\n    \"EcdsaSecp256k1RecoveryMethod2020\": \"esrs2020:EcdsaSecp256k1RecoveryMethod2020\",\n    \"publicKeyJwk\": {\n      \"@id\": \"esrs2020:publicKeyJwk\",\n      \"@type\": \"@json\"\n    },\n    \"privateKeyJwk\": {\n      \"@id\": \"esrs2020:privateKeyJwk\",\n      \"@type\": \"@json\"\n    },\n    \"publicKeyHex\": \"esrs2020:publicKeyHex\",\n    \"privateKeyHex\": \"esrs2020:privateKeyHex\",\n    \"ethereumAddress\": \"esrs2020:ethereumAddress\"\n  }\n}\n","{\n  \"@context\": {\n    \"@version\": 1.1,\n    \"@protected\": true,\n    \"Profile\": \"https://veramo.io/contexts/profile#Profile\",\n    \"name\": \"https://schema.org/name\"\n  }\n}\n","{\n  \"@context\": [\n    {\n      \"@version\": 1.1\n    },\n    \"https://w3id.org/security/v1\",\n    {\n      \"AesKeyWrappingKey2019\": \"sec:AesKeyWrappingKey2019\",\n      \"DeleteKeyOperation\": \"sec:DeleteKeyOperation\",\n      \"DeriveSecretOperation\": \"sec:DeriveSecretOperation\",\n      \"EcdsaSecp256k1Signature2019\": \"sec:EcdsaSecp256k1Signature2019\",\n      \"EcdsaSecp256r1Signature2019\": \"sec:EcdsaSecp256r1Signature2019\",\n      \"EcdsaSecp256k1VerificationKey2019\": \"sec:EcdsaSecp256k1VerificationKey2019\",\n      \"EcdsaSecp256r1VerificationKey2019\": \"sec:EcdsaSecp256r1VerificationKey2019\",\n      \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n      \"Ed25519VerificationKey2018\": \"sec:Ed25519VerificationKey2018\",\n      \"EquihashProof2018\": \"sec:EquihashProof2018\",\n      \"ExportKeyOperation\": \"sec:ExportKeyOperation\",\n      \"GenerateKeyOperation\": \"sec:GenerateKeyOperation\",\n      \"KmsOperation\": \"sec:KmsOperation\",\n      \"RevokeKeyOperation\": \"sec:RevokeKeyOperation\",\n      \"RsaSignature2018\": \"sec:RsaSignature2018\",\n      \"RsaVerificationKey2018\": \"sec:RsaVerificationKey2018\",\n      \"Sha256HmacKey2019\": \"sec:Sha256HmacKey2019\",\n      \"SignOperation\": \"sec:SignOperation\",\n      \"UnwrapKeyOperation\": \"sec:UnwrapKeyOperation\",\n      \"VerifyOperation\": \"sec:VerifyOperation\",\n      \"WrapKeyOperation\": \"sec:WrapKeyOperation\",\n      \"X25519KeyAgreementKey2019\": \"sec:X25519KeyAgreementKey2019\",\n\n      \"allowedAction\": \"sec:allowedAction\",\n      \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"capability\": { \"@id\": \"sec:capability\", \"@type\": \"@id\" },\n      \"capabilityAction\": \"sec:capabilityAction\",\n      \"capabilityChain\": { \"@id\": \"sec:capabilityChain\", \"@type\": \"@id\", \"@container\": \"@list\" },\n      \"capabilityDelegation\": { \"@id\": \"sec:capabilityDelegationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"capabilityInvocation\": { \"@id\": \"sec:capabilityInvocationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"caveat\": { \"@id\": \"sec:caveat\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"challenge\": \"sec:challenge\",\n      \"ciphertext\": \"sec:ciphertext\",\n      \"controller\": { \"@id\": \"sec:controller\", \"@type\": \"@id\" },\n      \"delegator\": { \"@id\": \"sec:delegator\", \"@type\": \"@id\" },\n      \"equihashParameterK\": { \"@id\": \"sec:equihashParameterK\", \"@type\": \"xsd:integer\" },\n      \"equihashParameterN\": { \"@id\": \"sec:equihashParameterN\", \"@type\": \"xsd:integer\" },\n      \"invocationTarget\": { \"@id\": \"sec:invocationTarget\", \"@type\": \"@id\" },\n      \"invoker\": { \"@id\": \"sec:invoker\", \"@type\": \"@id\" },\n      \"jws\": \"sec:jws\",\n      \"keyAgreement\": { \"@id\": \"sec:keyAgreementMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"kmsModule\": { \"@id\": \"sec:kmsModule\" },\n      \"parentCapability\": { \"@id\": \"sec:parentCapability\", \"@type\": \"@id\" },\n      \"plaintext\": \"sec:plaintext\",\n      \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n      \"proofPurpose\": { \"@id\": \"sec:proofPurpose\", \"@type\": \"@vocab\" },\n      \"proofValue\": \"sec:proofValue\",\n      \"referenceId\": \"sec:referenceId\",\n      \"unwrappedKey\": \"sec:unwrappedKey\",\n      \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" },\n      \"verifyData\": \"sec:verifyData\",\n      \"wrappedKey\": \"sec:wrappedKey\"\n    }\n  ]\n}\n","{\n  \"@context\": {\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n\n    \"dc\": \"http://purl.org/dc/terms/\",\n    \"sec\": \"https://w3id.org/security#\",\n    \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n    \"EcdsaKoblitzSignature2016\": \"sec:EcdsaKoblitzSignature2016\",\n    \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n    \"EncryptedMessage\": \"sec:EncryptedMessage\",\n    \"GraphSignature2012\": \"sec:GraphSignature2012\",\n    \"LinkedDataSignature2015\": \"sec:LinkedDataSignature2015\",\n    \"LinkedDataSignature2016\": \"sec:LinkedDataSignature2016\",\n    \"CryptographicKey\": \"sec:Key\",\n\n    \"authenticationTag\": \"sec:authenticationTag\",\n    \"canonicalizationAlgorithm\": \"sec:canonicalizationAlgorithm\",\n    \"cipherAlgorithm\": \"sec:cipherAlgorithm\",\n    \"cipherData\": \"sec:cipherData\",\n    \"cipherKey\": \"sec:cipherKey\",\n    \"created\": { \"@id\": \"dc:created\", \"@type\": \"xsd:dateTime\" },\n    \"creator\": { \"@id\": \"dc:creator\", \"@type\": \"@id\" },\n    \"digestAlgorithm\": \"sec:digestAlgorithm\",\n    \"digestValue\": \"sec:digestValue\",\n    \"domain\": \"sec:domain\",\n    \"encryptionKey\": \"sec:encryptionKey\",\n    \"expiration\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n    \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n    \"initializationVector\": \"sec:initializationVector\",\n    \"iterationCount\": \"sec:iterationCount\",\n    \"nonce\": \"sec:nonce\",\n    \"normalizationAlgorithm\": \"sec:normalizationAlgorithm\",\n    \"owner\": { \"@id\": \"sec:owner\", \"@type\": \"@id\" },\n    \"password\": \"sec:password\",\n    \"privateKey\": { \"@id\": \"sec:privateKey\", \"@type\": \"@id\" },\n    \"privateKeyPem\": \"sec:privateKeyPem\",\n    \"publicKey\": { \"@id\": \"sec:publicKey\", \"@type\": \"@id\" },\n    \"publicKeyBase58\": \"sec:publicKeyBase58\",\n    \"publicKeyPem\": \"sec:publicKeyPem\",\n    \"publicKeyWif\": \"sec:publicKeyWif\",\n    \"publicKeyService\": { \"@id\": \"sec:publicKeyService\", \"@type\": \"@id\" },\n    \"revoked\": { \"@id\": \"sec:revoked\", \"@type\": \"xsd:dateTime\" },\n    \"salt\": \"sec:salt\",\n    \"signature\": \"sec:signature\",\n    \"signatureAlgorithm\": \"sec:signingAlgorithm\",\n    \"signatureValue\": \"sec:signatureValue\"\n  }\n}\n","{\n  \"@context\": [\n    {\n      \"@version\": 1.1\n    },\n    \"https://w3id.org/security/v1\",\n    {\n      \"AesKeyWrappingKey2019\": \"sec:AesKeyWrappingKey2019\",\n      \"DeleteKeyOperation\": \"sec:DeleteKeyOperation\",\n      \"DeriveSecretOperation\": \"sec:DeriveSecretOperation\",\n      \"EcdsaSecp256k1Signature2019\": \"sec:EcdsaSecp256k1Signature2019\",\n      \"EcdsaSecp256r1Signature2019\": \"sec:EcdsaSecp256r1Signature2019\",\n      \"EcdsaSecp256k1VerificationKey2019\": \"sec:EcdsaSecp256k1VerificationKey2019\",\n      \"EcdsaSecp256r1VerificationKey2019\": \"sec:EcdsaSecp256r1VerificationKey2019\",\n      \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n      \"Ed25519VerificationKey2018\": \"sec:Ed25519VerificationKey2018\",\n      \"EquihashProof2018\": \"sec:EquihashProof2018\",\n      \"ExportKeyOperation\": \"sec:ExportKeyOperation\",\n      \"GenerateKeyOperation\": \"sec:GenerateKeyOperation\",\n      \"KmsOperation\": \"sec:KmsOperation\",\n      \"RevokeKeyOperation\": \"sec:RevokeKeyOperation\",\n      \"RsaSignature2018\": \"sec:RsaSignature2018\",\n      \"RsaVerificationKey2018\": \"sec:RsaVerificationKey2018\",\n      \"Sha256HmacKey2019\": \"sec:Sha256HmacKey2019\",\n      \"SignOperation\": \"sec:SignOperation\",\n      \"UnwrapKeyOperation\": \"sec:UnwrapKeyOperation\",\n      \"VerifyOperation\": \"sec:VerifyOperation\",\n      \"WrapKeyOperation\": \"sec:WrapKeyOperation\",\n      \"X25519KeyAgreementKey2019\": \"sec:X25519KeyAgreementKey2019\",\n\n      \"allowedAction\": \"sec:allowedAction\",\n      \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"capability\": { \"@id\": \"sec:capability\", \"@type\": \"@id\" },\n      \"capabilityAction\": \"sec:capabilityAction\",\n      \"capabilityChain\": { \"@id\": \"sec:capabilityChain\", \"@type\": \"@id\", \"@container\": \"@list\" },\n      \"capabilityDelegation\": { \"@id\": \"sec:capabilityDelegationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"capabilityInvocation\": { \"@id\": \"sec:capabilityInvocationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"caveat\": { \"@id\": \"sec:caveat\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"challenge\": \"sec:challenge\",\n      \"ciphertext\": \"sec:ciphertext\",\n      \"controller\": { \"@id\": \"sec:controller\", \"@type\": \"@id\" },\n      \"delegator\": { \"@id\": \"sec:delegator\", \"@type\": \"@id\" },\n      \"equihashParameterK\": { \"@id\": \"sec:equihashParameterK\", \"@type\": \"xsd:integer\" },\n      \"equihashParameterN\": { \"@id\": \"sec:equihashParameterN\", \"@type\": \"xsd:integer\" },\n      \"invocationTarget\": { \"@id\": \"sec:invocationTarget\", \"@type\": \"@id\" },\n      \"invoker\": { \"@id\": \"sec:invoker\", \"@type\": \"@id\" },\n      \"jws\": \"sec:jws\",\n      \"keyAgreement\": { \"@id\": \"sec:keyAgreementMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n      \"kmsModule\": { \"@id\": \"sec:kmsModule\" },\n      \"parentCapability\": { \"@id\": \"sec:parentCapability\", \"@type\": \"@id\" },\n      \"plaintext\": \"sec:plaintext\",\n      \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n      \"proofPurpose\": { \"@id\": \"sec:proofPurpose\", \"@type\": \"@vocab\" },\n      \"proofValue\": \"sec:proofValue\",\n      \"referenceId\": \"sec:referenceId\",\n      \"unwrappedKey\": \"sec:unwrappedKey\",\n      \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" },\n      \"verifyData\": \"sec:verifyData\",\n      \"wrappedKey\": \"sec:wrappedKey\"\n    }\n  ]\n}\n","{\n  \"@context\": [\n    {\n      \"@version\": 1.1,\n      \"id\": \"@id\",\n      \"type\": \"@type\",\n      \"@protected\": true,\n      \"JsonWebKey2020\": {\n        \"@id\": \"https://w3id.org/security#JsonWebKey2020\"\n      },\n      \"JsonWebSignature2020\": {\n        \"@id\": \"https://w3id.org/security#JsonWebSignature2020\",\n        \"@context\": {\n          \"@version\": 1.1,\n          \"id\": \"@id\",\n          \"type\": \"@type\",\n          \"@protected\": true,\n          \"challenge\": \"https://w3id.org/security#challenge\",\n          \"created\": {\n            \"@id\": \"http://purl.org/dc/terms/created\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"domain\": \"https://w3id.org/security#domain\",\n          \"expires\": {\n            \"@id\": \"https://w3id.org/security#expiration\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"jws\": \"https://w3id.org/security#jws\",\n          \"nonce\": \"https://w3id.org/security#nonce\",\n          \"proofPurpose\": {\n            \"@id\": \"https://w3id.org/security#proofPurpose\",\n            \"@type\": \"@vocab\",\n            \"@context\": {\n              \"@version\": 1.1,\n              \"@protected\": true,\n              \"id\": \"@id\",\n              \"type\": \"@type\",\n              \"assertionMethod\": {\n                \"@id\": \"https://w3id.org/security#assertionMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"authentication\": {\n                \"@id\": \"https://w3id.org/security#authenticationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityInvocation\": {\n                \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityDelegation\": {\n                \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"keyAgreement\": {\n                \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              }\n            }\n          },\n          \"verificationMethod\": {\n            \"@id\": \"https://w3id.org/security#verificationMethod\",\n            \"@type\": \"@id\"\n          }\n        }\n      },\n      \"Ed25519VerificationKey2020\": {\n        \"@id\": \"https://w3id.org/security#Ed25519VerificationKey2020\"\n      },\n      \"Ed25519Signature2020\": {\n        \"@id\": \"https://w3id.org/security#Ed25519Signature2020\",\n        \"@context\": {\n          \"@protected\": true,\n          \"id\": \"@id\",\n          \"type\": \"@type\",\n          \"challenge\": \"https://w3id.org/security#challenge\",\n          \"created\": {\n            \"@id\": \"http://purl.org/dc/terms/created\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"domain\": \"https://w3id.org/security#domain\",\n          \"expires\": {\n            \"@id\": \"https://w3id.org/security#expiration\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"nonce\": \"https://w3id.org/security#nonce\",\n          \"proofPurpose\": {\n            \"@id\": \"https://w3id.org/security#proofPurpose\",\n            \"@type\": \"@vocab\",\n            \"@context\": {\n              \"@version\": 1.1,\n              \"@protected\": true,\n              \"id\": \"@id\",\n              \"type\": \"@type\",\n              \"assertionMethod\": {\n                \"@id\": \"https://w3id.org/security#assertionMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"authentication\": {\n                \"@id\": \"https://w3id.org/security#authenticationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityInvocation\": {\n                \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityDelegation\": {\n                \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"keyAgreement\": {\n                \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              }\n            }\n          },\n          \"proofValue\": {\n            \"@id\": \"https://w3id.org/security#proofValue\",\n            \"@type\": \"https://w3id.org/security#multibase\"\n          },\n          \"verificationMethod\": {\n            \"@id\": \"https://w3id.org/security#verificationMethod\",\n            \"@type\": \"@id\"\n          }\n        }\n      },\n      \"publicKeyJwk\": {\n        \"@id\": \"https://w3id.org/security#publicKeyJwk\",\n        \"@type\": \"@json\"\n      },\n      \"ethereumAddress\": {\n        \"@id\": \"https://w3id.org/security#ethereumAddress\"\n      },\n      \"publicKeyHex\": {\n        \"@id\": \"https://w3id.org/security#publicKeyHex\"\n      },\n      \"blockchainAccountId\": {\n        \"@id\": \"https://w3id.org/security#blockchainAccountId\"\n      },\n      \"MerkleProof2019\": {\n        \"@id\": \"https://w3id.org/security#MerkleProof2019\"\n      },\n      \"Bls12381G1Key2020\": {\n        \"@id\": \"https://w3id.org/security#Bls12381G1Key2020\"\n      },\n      \"Bls12381G2Key2020\": {\n        \"@id\": \"https://w3id.org/security#Bls12381G2Key2020\"\n      },\n      \"BbsBlsSignature2020\": {\n        \"@id\": \"https://w3id.org/security#BbsBlsSignature2020\",\n        \"@context\": {\n          \"@protected\": true,\n          \"id\": \"@id\",\n          \"type\": \"@type\",\n          \"challenge\": \"https://w3id.org/security#challenge\",\n          \"created\": {\n            \"@id\": \"http://purl.org/dc/terms/created\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"domain\": \"https://w3id.org/security#domain\",\n          \"nonce\": \"https://w3id.org/security#nonce\",\n          \"proofPurpose\": {\n            \"@id\": \"https://w3id.org/security#proofPurpose\",\n            \"@type\": \"@vocab\",\n            \"@context\": {\n              \"@version\": 1.1,\n              \"@protected\": true,\n              \"id\": \"@id\",\n              \"type\": \"@type\",\n              \"assertionMethod\": {\n                \"@id\": \"https://w3id.org/security#assertionMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"authentication\": {\n                \"@id\": \"https://w3id.org/security#authenticationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityInvocation\": {\n                \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityDelegation\": {\n                \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"keyAgreement\": {\n                \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              }\n            }\n          },\n          \"proofValue\": \"https://w3id.org/security#proofValue\",\n          \"verificationMethod\": {\n            \"@id\": \"https://w3id.org/security#verificationMethod\",\n            \"@type\": \"@id\"\n          }\n        }\n      },\n      \"BbsBlsSignatureProof2020\": {\n        \"@id\": \"https://w3id.org/security#BbsBlsSignatureProof2020\",\n        \"@context\": {\n          \"@protected\": true,\n          \"id\": \"@id\",\n          \"type\": \"@type\",\n          \"challenge\": \"https://w3id.org/security#challenge\",\n          \"created\": {\n            \"@id\": \"http://purl.org/dc/terms/created\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"domain\": \"https://w3id.org/security#domain\",\n          \"nonce\": \"https://w3id.org/security#nonce\",\n          \"proofPurpose\": {\n            \"@id\": \"https://w3id.org/security#proofPurpose\",\n            \"@type\": \"@vocab\",\n            \"@context\": {\n              \"@version\": 1.1,\n              \"@protected\": true,\n              \"id\": \"@id\",\n              \"type\": \"@type\",\n              \"assertionMethod\": {\n                \"@id\": \"https://w3id.org/security#assertionMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"authentication\": {\n                \"@id\": \"https://w3id.org/security#authenticationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityInvocation\": {\n                \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityDelegation\": {\n                \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"keyAgreement\": {\n                \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              }\n            }\n          },\n          \"proofValue\": \"https://w3id.org/security#proofValue\",\n          \"verificationMethod\": {\n            \"@id\": \"https://w3id.org/security#verificationMethod\",\n            \"@type\": \"@id\"\n          }\n        }\n      },\n\n      \"EcdsaKoblitzSignature2016\": \"https://w3id.org/security#EcdsaKoblitzSignature2016\",\n      \"Ed25519Signature2018\": {\n        \"@id\": \"https://w3id.org/security#Ed25519Signature2018\",\n        \"@context\": {\n          \"@protected\": true,\n\n          \"id\": \"@id\",\n          \"type\": \"@type\",\n\n          \"challenge\": \"https://w3id.org/security#challenge\",\n          \"created\": {\n            \"@id\": \"http://purl.org/dc/terms/created\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"domain\": \"https://w3id.org/security#domain\",\n          \"expires\": {\n            \"@id\": \"https://w3id.org/security#expiration\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"jws\": \"https://w3id.org/security#jws\",\n          \"nonce\": \"https://w3id.org/security#nonce\",\n          \"proofPurpose\": {\n            \"@id\": \"https://w3id.org/security#proofPurpose\",\n            \"@type\": \"@vocab\",\n            \"@context\": {\n              \"@version\": 1.1,\n              \"@protected\": true,\n              \"id\": \"@id\",\n              \"type\": \"@type\",\n              \"assertionMethod\": {\n                \"@id\": \"https://w3id.org/security#assertionMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"authentication\": {\n                \"@id\": \"https://w3id.org/security#authenticationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityInvocation\": {\n                \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityDelegation\": {\n                \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"keyAgreement\": {\n                \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              }\n            }\n          },\n          \"proofValue\": \"https://w3id.org/security#proofValue\",\n          \"verificationMethod\": {\n            \"@id\": \"https://w3id.org/security#verificationMethod\",\n            \"@type\": \"@id\"\n          }\n        }\n      },\n      \"EncryptedMessage\": \"https://w3id.org/security#EncryptedMessage\",\n      \"GraphSignature2012\": \"https://w3id.org/security#GraphSignature2012\",\n      \"LinkedDataSignature2015\": \"https://w3id.org/security#LinkedDataSignature2015\",\n      \"LinkedDataSignature2016\": \"https://w3id.org/security#LinkedDataSignature2016\",\n      \"CryptographicKey\": \"https://w3id.org/security#Key\",\n      \"authenticationTag\": \"https://w3id.org/security#authenticationTag\",\n      \"canonicalizationAlgorithm\": \"https://w3id.org/security#canonicalizationAlgorithm\",\n      \"cipherAlgorithm\": \"https://w3id.org/security#cipherAlgorithm\",\n      \"cipherData\": \"https://w3id.org/security#cipherData\",\n      \"cipherKey\": \"https://w3id.org/security#cipherKey\",\n      \"created\": {\n        \"@id\": \"http://purl.org/dc/terms/created\",\n        \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n      },\n      \"creator\": {\n        \"@id\": \"http://purl.org/dc/terms/creator\",\n        \"@type\": \"@id\"\n      },\n      \"digestAlgorithm\": \"https://w3id.org/security#digestAlgorithm\",\n      \"digestValue\": \"https://w3id.org/security#digestValue\",\n      \"domain\": \"https://w3id.org/security#domain\",\n      \"encryptionKey\": \"https://w3id.org/security#encryptionKey\",\n      \"expiration\": {\n        \"@id\": \"https://w3id.org/security#expiration\",\n        \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n      },\n      \"expires\": {\n        \"@id\": \"https://w3id.org/security#expiration\",\n        \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n      },\n      \"initializationVector\": \"https://w3id.org/security#initializationVector\",\n      \"iterationCount\": \"https://w3id.org/security#iterationCount\",\n      \"nonce\": \"https://w3id.org/security#nonce\",\n      \"normalizationAlgorithm\": \"https://w3id.org/security#normalizationAlgorithm\",\n      \"owner\": \"https://w3id.org/security#owner\",\n      \"password\": \"https://w3id.org/security#password\",\n      \"privateKey\": \"https://w3id.org/security#privateKey\",\n      \"privateKeyPem\": \"https://w3id.org/security#privateKeyPem\",\n      \"publicKey\": \"https://w3id.org/security#publicKey\",\n      \"publicKeyBase58\": \"https://w3id.org/security#publicKeyBase58\",\n      \"publicKeyPem\": \"https://w3id.org/security#publicKeyPem\",\n      \"publicKeyWif\": \"https://w3id.org/security#publicKeyWif\",\n      \"publicKeyService\": \"https://w3id.org/security#publicKeyService\",\n      \"revoked\": {\n        \"@id\": \"https://w3id.org/security#revoked\",\n        \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n      },\n      \"salt\": \"https://w3id.org/security#salt\",\n      \"signature\": \"https://w3id.org/security#signature\",\n      \"signatureAlgorithm\": \"https://w3id.org/security#signingAlgorithm\",\n      \"signatureValue\": \"https://w3id.org/security#signatureValue\",\n      \"proofValue\": \"https://w3id.org/security#proofValue\",\n\n      \"AesKeyWrappingKey2019\": \"https://w3id.org/security#AesKeyWrappingKey2019\",\n      \"DeleteKeyOperation\": \"https://w3id.org/security#DeleteKeyOperation\",\n      \"DeriveSecretOperation\": \"https://w3id.org/security#DeriveSecretOperation\",\n      \"EcdsaSecp256k1Signature2019\": {\n        \"@id\": \"https://w3id.org/security#EcdsaSecp256k1Signature2019\",\n        \"@context\": {\n          \"@protected\": true,\n\n          \"id\": \"@id\",\n          \"type\": \"@type\",\n\n          \"challenge\": \"https://w3id.org/security#challenge\",\n          \"created\": {\n            \"@id\": \"http://purl.org/dc/terms/created\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"domain\": \"https://w3id.org/security#domain\",\n          \"expires\": {\n            \"@id\": \"https://w3id.org/security#expiration\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"jws\": \"https://w3id.org/security#jws\",\n          \"nonce\": \"https://w3id.org/security#nonce\",\n          \"proofPurpose\": {\n            \"@id\": \"https://w3id.org/security#proofPurpose\",\n            \"@type\": \"@vocab\",\n            \"@context\": {\n              \"@version\": 1.1,\n              \"@protected\": true,\n              \"id\": \"@id\",\n              \"type\": \"@type\",\n              \"assertionMethod\": {\n                \"@id\": \"https://w3id.org/security#assertionMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"authentication\": {\n                \"@id\": \"https://w3id.org/security#authenticationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityInvocation\": {\n                \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityDelegation\": {\n                \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"keyAgreement\": {\n                \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              }\n            }\n          },\n          \"proofValue\": \"https://w3id.org/security#proofValue\",\n          \"verificationMethod\": {\n            \"@id\": \"https://w3id.org/security#verificationMethod\",\n            \"@type\": \"@id\"\n          }\n        }\n      },\n      \"EcdsaSecp256r1Signature2019\": {\n        \"@id\": \"https://w3id.org/security#EcdsaSecp256r1Signature2019\",\n        \"@context\": {\n          \"@protected\": true,\n\n          \"id\": \"@id\",\n          \"type\": \"@type\",\n\n          \"challenge\": \"https://w3id.org/security#challenge\",\n          \"created\": {\n            \"@id\": \"http://purl.org/dc/terms/created\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"domain\": \"https://w3id.org/security#domain\",\n          \"expires\": {\n            \"@id\": \"https://w3id.org/security#expiration\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"jws\": \"https://w3id.org/security#jws\",\n          \"nonce\": \"https://w3id.org/security#nonce\",\n          \"proofPurpose\": {\n            \"@id\": \"https://w3id.org/security#proofPurpose\",\n            \"@type\": \"@vocab\",\n            \"@context\": {\n              \"@version\": 1.1,\n              \"@protected\": true,\n              \"id\": \"@id\",\n              \"type\": \"@type\",\n              \"assertionMethod\": {\n                \"@id\": \"https://w3id.org/security#assertionMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"authentication\": {\n                \"@id\": \"https://w3id.org/security#authenticationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityInvocation\": {\n                \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityDelegation\": {\n                \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"keyAgreement\": {\n                \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              }\n            }\n          },\n          \"proofValue\": \"https://w3id.org/security#proofValue\",\n          \"verificationMethod\": {\n            \"@id\": \"https://w3id.org/security#verificationMethod\",\n            \"@type\": \"@id\"\n          }\n        }\n      },\n      \"EcdsaSecp256k1VerificationKey2019\": \"https://w3id.org/security#EcdsaSecp256k1VerificationKey2019\",\n      \"EcdsaSecp256r1VerificationKey2019\": \"https://w3id.org/security#EcdsaSecp256r1VerificationKey2019\",\n      \"Ed25519VerificationKey2018\": \"https://w3id.org/security#Ed25519VerificationKey2018\",\n      \"EquihashProof2018\": \"https://w3id.org/security#EquihashProof2018\",\n      \"ExportKeyOperation\": \"https://w3id.org/security#ExportKeyOperation\",\n      \"GenerateKeyOperation\": \"https://w3id.org/security#GenerateKeyOperation\",\n      \"KmsOperation\": \"https://w3id.org/security#KmsOperation\",\n      \"RevokeKeyOperation\": \"https://w3id.org/security#RevokeKeyOperation\",\n      \"RsaSignature2018\": {\n        \"@id\": \"https://w3id.org/security#RsaSignature2018\",\n        \"@context\": {\n          \"@protected\": true,\n\n          \"challenge\": \"https://w3id.org/security#challenge\",\n          \"created\": {\n            \"@id\": \"http://purl.org/dc/terms/created\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"domain\": \"https://w3id.org/security#domain\",\n          \"expires\": {\n            \"@id\": \"https://w3id.org/security#expiration\",\n            \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n          },\n          \"jws\": \"https://w3id.org/security#jws\",\n          \"nonce\": \"https://w3id.org/security#nonce\",\n          \"proofPurpose\": {\n            \"@id\": \"https://w3id.org/security#proofPurpose\",\n            \"@type\": \"@vocab\",\n            \"@context\": {\n              \"@version\": 1.1,\n              \"@protected\": true,\n              \"id\": \"@id\",\n              \"type\": \"@type\",\n              \"assertionMethod\": {\n                \"@id\": \"https://w3id.org/security#assertionMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"authentication\": {\n                \"@id\": \"https://w3id.org/security#authenticationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityInvocation\": {\n                \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"capabilityDelegation\": {\n                \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              },\n              \"keyAgreement\": {\n                \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n                \"@type\": \"@id\",\n                \"@container\": \"@set\"\n              }\n            }\n          },\n          \"proofValue\": \"https://w3id.org/security#proofValue\",\n          \"verificationMethod\": {\n            \"@id\": \"https://w3id.org/security#verificationMethod\",\n            \"@type\": \"@id\"\n          }\n        }\n      },\n      \"RsaVerificationKey2018\": \"https://w3id.org/security#RsaVerificationKey2018\",\n      \"Sha256HmacKey2019\": \"https://w3id.org/security#Sha256HmacKey2019\",\n      \"SignOperation\": \"https://w3id.org/security#SignOperation\",\n      \"UnwrapKeyOperation\": \"https://w3id.org/security#UnwrapKeyOperation\",\n      \"VerifyOperation\": \"https://w3id.org/security#VerifyOperation\",\n      \"WrapKeyOperation\": \"https://w3id.org/security#WrapKeyOperation\",\n      \"X25519KeyAgreementKey2019\": \"https://w3id.org/security#X25519KeyAgreementKey2019\",\n\n      \"allowedAction\": \"https://w3id.org/security#allowedAction\",\n      \"assertionMethod\": {\n        \"@id\": \"https://w3id.org/security#assertionMethod\",\n        \"@type\": \"@id\",\n        \"@container\": \"@set\"\n      },\n      \"authentication\": {\n        \"@id\": \"https://w3id.org/security#authenticationMethod\",\n        \"@type\": \"@id\",\n        \"@container\": \"@set\"\n      },\n      \"capability\": {\n        \"@id\": \"https://w3id.org/security#capability\",\n        \"@type\": \"@id\"\n      },\n      \"capabilityAction\": \"https://w3id.org/security#capabilityAction\",\n      \"capabilityChain\": {\n        \"@id\": \"https://w3id.org/security#capabilityChain\",\n        \"@type\": \"@id\",\n        \"@container\": \"@list\"\n      },\n      \"capabilityDelegation\": {\n        \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n        \"@type\": \"@id\",\n        \"@container\": \"@set\"\n      },\n      \"capabilityInvocation\": {\n        \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n        \"@type\": \"@id\",\n        \"@container\": \"@set\"\n      },\n      \"caveat\": {\n        \"@id\": \"https://w3id.org/security#caveat\",\n        \"@type\": \"@id\",\n        \"@container\": \"@set\"\n      },\n      \"challenge\": \"https://w3id.org/security#challenge\",\n      \"ciphertext\": \"https://w3id.org/security#ciphertext\",\n      \"controller\": {\n        \"@id\": \"https://w3id.org/security#controller\",\n        \"@type\": \"@id\"\n      },\n      \"delegator\": {\n        \"@id\": \"https://w3id.org/security#delegator\",\n        \"@type\": \"@id\"\n      },\n      \"equihashParameterK\": {\n        \"@id\": \"https://w3id.org/security#equihashParameterK\",\n        \"@type\": \"http://www.w3.org/2001/XMLSchema#:integer\"\n      },\n      \"equihashParameterN\": {\n        \"@id\": \"https://w3id.org/security#equihashParameterN\",\n        \"@type\": \"http://www.w3.org/2001/XMLSchema#:integer\"\n      },\n      \"invocationTarget\": {\n        \"@id\": \"https://w3id.org/security#invocationTarget\",\n        \"@type\": \"@id\"\n      },\n      \"invoker\": {\n        \"@id\": \"https://w3id.org/security#invoker\",\n        \"@type\": \"@id\"\n      },\n      \"jws\": \"https://w3id.org/security#jws\",\n      \"keyAgreement\": {\n        \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n        \"@type\": \"@id\",\n        \"@container\": \"@set\"\n      },\n      \"kmsModule\": {\n        \"@id\": \"https://w3id.org/security#kmsModule\"\n      },\n      \"parentCapability\": {\n        \"@id\": \"https://w3id.org/security#parentCapability\",\n        \"@type\": \"@id\"\n      },\n      \"plaintext\": \"https://w3id.org/security#plaintext\",\n      \"proof\": {\n        \"@id\": \"https://w3id.org/security#proof\",\n        \"@type\": \"@id\",\n        \"@container\": \"@graph\"\n      },\n      \"proofPurpose\": {\n        \"@id\": \"https://w3id.org/security#proofPurpose\",\n        \"@type\": \"@vocab\",\n        \"@context\": {\n          \"@version\": 1.1,\n          \"@protected\": true,\n          \"id\": \"@id\",\n          \"type\": \"@type\",\n          \"assertionMethod\": {\n            \"@id\": \"https://w3id.org/security#assertionMethod\",\n            \"@type\": \"@id\",\n            \"@container\": \"@set\"\n          },\n          \"authentication\": {\n            \"@id\": \"https://w3id.org/security#authenticationMethod\",\n            \"@type\": \"@id\",\n            \"@container\": \"@set\"\n          },\n          \"capabilityInvocation\": {\n            \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n            \"@type\": \"@id\",\n            \"@container\": \"@set\"\n          },\n          \"capabilityDelegation\": {\n            \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n            \"@type\": \"@id\",\n            \"@container\": \"@set\"\n          },\n          \"keyAgreement\": {\n            \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n            \"@type\": \"@id\",\n            \"@container\": \"@set\"\n          }\n        }\n      },\n      \"referenceId\": \"https://w3id.org/security#referenceId\",\n      \"unwrappedKey\": \"https://w3id.org/security#unwrappedKey\",\n      \"verificationMethod\": {\n        \"@id\": \"https://w3id.org/security#verificationMethod\",\n        \"@type\": \"@id\"\n      },\n      \"verifyData\": \"https://w3id.org/security#verifyData\",\n      \"wrappedKey\": \"https://w3id.org/security#wrappedKey\",\n      \"x509CertificateChain\": {\n        \"@id\": \"https://w3id.org/security#x509CertificateChain\",\n        \"@type\": \"https://w3id.org/security#multibase\",\n        \"@container\": \"@list\"\n      },\n      \"x509CertificateFingerprint\": {\n        \"@id\": \"https://w3id.org/security#x509CertificateFingerprint\",\n        \"@type\": \"https://w3id.org/security#multibase\"\n      }\n    }\n  ]\n}\n","{\n  \"@context\": {\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n    \"@protected\": true,\n    \"X25519KeyAgreementKey2019\": {\n      \"@id\": \"https://w3id.org/security#X25519KeyAgreementKey2019\",\n      \"@context\": {\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"controller\": {\n          \"@id\": \"https://w3id.org/security#controller\",\n          \"@type\": \"@id\"\n        },\n        \"revoked\": {\n          \"@id\": \"https://w3id.org/security#revoked\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"publicKeyBase58\": {\n          \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n        }\n      }\n    }\n  }\n}\n","{\n  \"@context\": {\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n    \"@protected\": true,\n    \"proof\": {\n      \"@id\": \"https://w3id.org/security#proof\",\n      \"@type\": \"@id\",\n      \"@container\": \"@graph\"\n    },\n    \"EcdsaSecp256k1RecoveryMethod2020\": {\n      \"@id\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoveryMethod2020\",\n      \"@context\": {\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"controller\": {\n          \"@id\": \"https://w3id.org/security#controller\",\n          \"@type\": \"@id\"\n        },\n        \"blockchainAccountId\": \"https://w3id.org/security#blockchainAccountId\",\n        \"publicKeyJwk\": {\n          \"@id\": \"https://w3id.org/security#publicKeyJwk\",\n          \"@type\": \"@json\"\n        }\n      }\n    },\n    \"EcdsaSecp256k1RecoverySignature2020\": {\n      \"@id\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoverySignature2020\",\n      \"@context\": {\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"challenge\": \"https://w3id.org/security#challenge\",\n        \"created\": {\n          \"@id\": \"http://purl.org/dc/terms/created\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"domain\": \"https://w3id.org/security#domain\",\n        \"expires\": {\n          \"@id\": \"https://w3id.org/security#expiration\",\n          \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n        },\n        \"jws\": \"https://w3id.org/security#jws\",\n        \"nonce\": \"https://w3id.org/security#nonce\",\n        \"proofPurpose\": {\n          \"@id\": \"https://w3id.org/security#proofPurpose\",\n          \"@type\": \"@vocab\",\n          \"@context\": {\n            \"@protected\": true,\n            \"id\": \"@id\",\n            \"type\": \"@type\",\n            \"assertionMethod\": {\n              \"@id\": \"https://w3id.org/security#assertionMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"authentication\": {\n              \"@id\": \"https://w3id.org/security#authenticationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityInvocation\": {\n              \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"capabilityDelegation\": {\n              \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            },\n            \"keyAgreement\": {\n              \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n              \"@type\": \"@id\",\n              \"@container\": \"@set\"\n            }\n          }\n        },\n        \"verificationMethod\": {\n          \"@id\": \"https://w3id.org/security#verificationMethod\",\n          \"@type\": \"@id\"\n        }\n      }\n    }\n  }\n}\n","{\n  \"@context\": {\n    \"@protected\": true,\n\n    \"RevocationList2020Credential\": {\n      \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020Credential\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"description\": \"http://schema.org/description\",\n        \"name\": \"http://schema.org/name\"\n      }\n    },\n\n    \"RevocationList2020\": {\n      \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"encodedList\": \"https://w3id.org/vc-revocation-list-2020#encodedList\"\n      }\n    },\n\n    \"RevocationList2020Status\": {\n      \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020Status\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"revocationListCredential\": {\n          \"@id\": \"https://w3id.org/vc-revocation-list-2020#revocationListCredential\",\n          \"@type\": \"@id\"\n        },\n        \"revocationListIndex\": \"https://w3id.org/vc-revocation-list-2020#revocationListIndex\"\n      }\n    }\n  }\n}\n","{\n  \"@context\": {\n    \"@protected\": true,\n\n    \"StatusList2021Credential\": {\n      \"@id\": \"https://w3id.org/vc/status-list#StatusList2021Credential\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"description\": \"http://schema.org/description\",\n        \"name\": \"http://schema.org/name\"\n      }\n    },\n\n    \"StatusList2021\": {\n      \"@id\": \"https://w3id.org/vc/status-list#StatusList2021\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"statusPurpose\": \"https://w3id.org/vc/status-list#statusPurpose\",\n        \"encodedList\": \"https://w3id.org/vc/status-list#encodedList\"\n      }\n    },\n\n    \"StatusList2021Entry\": {\n      \"@id\": \"https://w3id.org/vc/status-list#StatusList2021Entry\",\n      \"@context\": {\n        \"@protected\": true,\n\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n\n        \"statusPurpose\": \"https://w3id.org/vc/status-list#statusPurpose\",\n        \"statusListIndex\": \"https://w3id.org/vc/status-list#statusListIndex\",\n        \"statusListCredential\": {\n          \"@id\": \"https://w3id.org/vc/status-list#statusListCredential\",\n          \"@type\": \"@id\"\n        }\n      }\n    }\n  }\n}\n","{\n  \"@context\": {\n    \"@protected\": true,\n    \"id\": \"@id\",\n    \"type\": \"@type\",\n\n    \"alsoKnownAs\": {\n      \"@id\": \"https://www.w3.org/ns/activitystreams#alsoKnownAs\",\n      \"@type\": \"@id\"\n    },\n    \"assertionMethod\": {\n      \"@id\": \"https://w3id.org/security#assertionMethod\",\n      \"@type\": \"@id\",\n      \"@container\": \"@set\"\n    },\n    \"authentication\": {\n      \"@id\": \"https://w3id.org/security#authenticationMethod\",\n      \"@type\": \"@id\",\n      \"@container\": \"@set\"\n    },\n    \"capabilityDelegation\": {\n      \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n      \"@type\": \"@id\",\n      \"@container\": \"@set\"\n    },\n    \"capabilityInvocation\": {\n      \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n      \"@type\": \"@id\",\n      \"@container\": \"@set\"\n    },\n    \"controller\": {\n      \"@id\": \"https://w3id.org/security#controller\",\n      \"@type\": \"@id\"\n    },\n    \"keyAgreement\": {\n      \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n      \"@type\": \"@id\",\n      \"@container\": \"@set\"\n    },\n    \"service\": {\n      \"@id\": \"https://www.w3.org/ns/did#service\",\n      \"@type\": \"@id\",\n      \"@context\": {\n        \"@protected\": true,\n        \"id\": \"@id\",\n        \"type\": \"@type\",\n        \"serviceEndpoint\": {\n          \"@id\": \"https://www.w3.org/ns/did#serviceEndpoint\",\n          \"@type\": \"@id\"\n        }\n      }\n    },\n    \"verificationMethod\": {\n      \"@id\": \"https://w3id.org/security#verificationMethod\",\n      \"@type\": \"@id\"\n    }\n  }\n}\n","import contextBBSV1 from './contexts/bbs-bls-signature-2020-v1.json'\nimport contextCitizenshipV1 from './contexts/citizenship-v1.json' // assert { type: 'json' }\nimport contextSuitesEd25519_2020 from './contexts/ed25519-signature-2020-v1.json' //assert { type: 'json' }\nimport contextSuiteEip712 from './contexts/eip712.json' // assert { type: 'json' }\nimport contextSuitesJws_2020 from './contexts/json-web-signature-2020-v1.json' // assert { type: 'json' }\nimport contextLdsEcdsaSecpRecovery2020_0 from './contexts/lds-ecdsa-secp256k1-recovery2020-0.0.json' // assert { type: 'json' }\nimport contextProfile from './contexts/veramo.io_contexts_profile_v1.json' //assert { type: 'json' }\nimport contextSuitesEd25519_2018 from './contexts/w3id.org_security_suites_ed25519-2018_v1.json' //assert { type: 'json' }\nimport contextSecurityV1 from './contexts/w3id.org_security_v1.json' //assert { type: 'json' }\nimport contextSecurityV2 from './contexts/w3id.org_security_v2.json' //assert { type: 'json' }\nimport contextSecurityV3 from './contexts/w3id.org_security_v3-unstable.json' //assert { type: 'json' }\nimport contextSuitesX25519 from './contexts/w3id.org_security_suites_x25519-2019_v1.json' //assert { type: 'json' }\nimport contextLdsEcdsaSecpRecovery2020_2 from './contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json' //assert { type: 'json' }\nimport contextSuitesSecp from './contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json' //assert { type: 'json' }\nimport contextVCRevocationList2020 from './contexts/vc-revocation-list-2020-v1.json' // assert { type: 'json' }\nimport contextVCStatusList2021 from './contexts/vc-status-list-2021-v1.json' // assert { type: 'json' }\nimport contextDidV1 from './contexts/www.w3.org_ns_did_v1.json' //assert { type: 'json' }\n\nconst contextCredentialV1 = require('./contexts/www.w3.org_2018_credentials_v1.json') // assert { type: 'json' }\nconst contextCredentialV2 = require('./contexts/www.w3.org_ns_credentials_v2.json') // assert { type: 'json' }\n\n/**\n * Provides a hardcoded map of common context definitions\n */\nexport const LdDefaultContexts = new Map([\n  ['https://www.w3.org/2018/credentials/v1', contextCredentialV1],\n  ['https://www.w3.org/ns/credentials/v2', contextCredentialV2],\n  ['https://w3.org/ns/credentials/v2', contextCredentialV2],\n  ['https://w3id.org/security/bbs/v1', contextBBSV1],\n  ['https://w3id.org/did/v1', contextDidV1],\n  ['https://w3.org/ns/did/v1', contextDidV1],\n  ['https://www.w3.org/ns/did/v1', contextDidV1],\n  ['https://w3id.org/security/v1', contextSecurityV1],\n  ['https://w3id.org/security/v2', contextSecurityV2],\n  ['https://w3id.org/security/v3-unstable', contextSecurityV3],\n  ['https://w3id.org/security/suites/ed25519-2018/v1', contextSuitesEd25519_2018],\n  ['https://w3id.org/security/suites/x25519-2019/v1', contextSuitesX25519],\n  ['https://w3id.org/security/suites/ed25519-2020/v1', contextSuitesEd25519_2020],\n  ['https://w3id.org/security/suites/jws-2020/v1', contextSuitesJws_2020],\n  ['https://veramo.io/contexts/profile/v1', contextProfile],\n  ['https://w3id.org/citizenship/v1', contextCitizenshipV1],\n  ['https://w3id.org/vc-revocation-list-2020', contextVCRevocationList2020],\n  ['https://w3id.org/vc/status-list/v1', contextVCStatusList2021], // Unfortunately also listed in the spec\n  ['https://w3id.org/vc/status-list/2021/v1', contextVCStatusList2021],\n  ['https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld', contextLdsEcdsaSecpRecovery2020_0],\n  ['https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-2.0.jsonld', contextLdsEcdsaSecpRecovery2020_2],\n  ['https://w3id.org/security/suites/secp256k1recovery-2020/v2', contextSuitesSecp],\n  ['https://w3id.org/security/suites/eip712sig-2021', contextSuiteEip712],\n  ['https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/', contextSuiteEip712],\n])\n","import { getAgentResolver, mapIdentifierKeysToDocWithJwkSupport } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { asArray, intersect, VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\nimport {\n  ContextDoc,\n  ICanIssueCredentialTypeArgs,\n  ICanVerifyDocumentTypeArgs,\n  ICreateVerifiableCredentialLDArgs,\n  ICreateVerifiablePresentationLDArgs,\n  IVcdmCredentialProvider,\n  IVcdmIssuerAgentContext,\n  IVcdmVerifierAgentContext,\n  IVerifyCredentialVcdmArgs,\n  IVerifyPresentationLDArgs,\n  preProcessCredentialPayload,\n  preProcessPresentation,\n} from '@sphereon/ssi-sdk.credential-vcdm'\nimport { vcLibCheckStatusFunction } from '@sphereon/ssi-sdk.vc-status-list'\nimport { IVerifyResult } from '@sphereon/ssi-types'\nimport type { DIDDocument, IAgentContext, IDIDManager, IIdentifier, IKey, IResolver, VerifiableCredential } from '@veramo/core'\nimport { AbstractPrivateKeyStore } from '@veramo/key-manager'\nimport { type _ExtendedIKey, type OrPromise, type RecordLike } from '@veramo/utils'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from '../ld-context-loader'\nimport { LdCredentialModule } from '../ld-credential-module'\nimport { LdDefaultContexts } from '../ld-default-contexts'\nimport { LdSuiteLoader } from '../ld-suite-loader'\nimport { SphereonLdSignature } from '../ld-suites'\nimport { SphereonEcdsaSecp256k1RecoverySignature2020, SphereonEd25519Signature2020 } from '../suites'\n\nconst debug = Debug('sphereon:ssi-sdk:ld-credential-module-local')\n\n/**\n * {@inheritDoc IVcLocalIssuerJsonLd}\n */\nexport class CredentialProviderJsonld implements IVcdmCredentialProvider {\n  private ldCredentialModule: LdCredentialModule\n  private keyStore?: AbstractPrivateKeyStore\n\n  constructor(options: {\n    contextMaps?: RecordLike<OrPromise<ContextDoc>>[]\n    suites?: SphereonLdSignature[]\n    keyStore?: AbstractPrivateKeyStore\n    documentLoader?: {\n      localResolution?: boolean // Resolve identifiers hosted by the agent\n      uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n      resolverResolution?: boolean // Use registered drivers\n    }\n  }) {\n    this.keyStore = options.keyStore\n    this.ldCredentialModule = new LdCredentialModule({\n      ldContextLoader: new LdContextLoader({ contextsPaths: options.contextMaps ?? [LdDefaultContexts] }),\n      ldSuiteLoader: new LdSuiteLoader({\n        ldSignatureSuites: options.suites ?? [new SphereonEd25519Signature2020(), new SphereonEcdsaSecp256k1RecoverySignature2020()],\n      }),\n      documentLoader: options?.documentLoader,\n    })\n\n    // this.overrideBindings(options.bindingOverrides)\n  }\n  /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.matchKeyForType} */\n  matchKeyForType(key: IKey): boolean {\n    return this.matchKeyForLDSuite(key)\n  }\n\n  /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.getTypeProofFormat} */\n  getTypeProofFormat(): string {\n    return 'lds'\n  }\n\n  /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.canIssueCredentialType} */\n  canIssueCredentialType(args: ICanIssueCredentialTypeArgs): boolean {\n    return args.proofFormat === 'lds'\n  }\n\n  /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.canVerifyDocumentType */\n  canVerifyDocumentType(args: ICanVerifyDocumentTypeArgs): boolean {\n    const { document } = args\n    if (typeof document === 'string') {\n      return false\n    }\n    const proofType = (<VerifiableCredential>document)?.proof?.type ?? '_never_'\n    for (const suite of this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuites()) {\n      if (suite.getSupportedProofType() === proofType) {\n        return true\n      } else if (asArray(suite.getSupportedVerificationType()).includes(proofType)) {\n        return true\n      }\n    }\n\n    return false\n  }\n\n  /** {@inheritDoc ICredentialIssuerLDLocal.createVerifiableCredential} */\n  async createVerifiableCredential(args: ICreateVerifiableCredentialLDArgs, context: IVcdmIssuerAgentContext): Promise<VerifiableCredentialSP> {\n    debug('Entry of createVerifiableCredential')\n    const { credential, issuer } = preProcessCredentialPayload(args)\n\n    let identifier: IIdentifier\n    try {\n      debug(`Retrieving identifier for issuer ${issuer} from DID manager...`)\n      identifier = await context.agent.didManagerGet({ did: issuer })\n      debug(`Identifier for issuer ${issuer} retrieved from DID manager`)\n    } catch (e) {\n      throw new Error(`invalid_argument: args.credential.issuer must be a DID managed by this agent. ${e}`)\n    }\n    try {\n      const { managedKey, verificationMethod } = await this.getSigningKey(identifier, args.keyRef)\n      const { signingKey, verificationMethodId } = await this.findSigningKeyWithId(context, identifier, { keyRef: args.keyRef })\n      return await this.ldCredentialModule.issueLDVerifiableCredential(\n        {\n          credential,\n          issuerDid: identifier.did,\n          key: managedKey ?? signingKey, // todo: signingKey does not have the private key, so would never work\n          verificationMethodId: verificationMethodId ?? (verificationMethod as string),\n          purpose: args.purpose,\n          credentialStatusOpts: args.credentialStatusOpts,\n        },\n        context,\n      )\n    } catch (error) {\n      debug(error)\n      return Promise.reject(error)\n    }\n  }\n\n  async getSigningKey(identifier: IIdentifier, keyRef?: string) {\n    let managedKey: IKey | undefined\n    let verificationMethod: string | undefined\n    if (keyRef) {\n      const k = await this.keyStore?.get({ alias: keyRef })\n      if (k?.privateKeyHex) {\n        managedKey = {\n          ...identifier.keys.find((k) => k.kid === keyRef),\n          privateKeyHex: k.privateKeyHex as string,\n        } as IKey\n        verificationMethod = `${identifier.did}#${managedKey.kid ? managedKey.kid : k.alias}`\n      }\n    }\n    return { managedKey, verificationMethod }\n  }\n\n  /** {@inheritdoc ICredentialIssuerLD.createVerifiablePresentationLD} */\n  async createVerifiablePresentation(args: ICreateVerifiablePresentationLDArgs, context: IVcdmIssuerAgentContext): Promise<VerifiablePresentationSP> {\n    const { presentation, holder } = preProcessPresentation(args)\n\n    if (presentation.verifiableCredential) {\n      const credentials = presentation.verifiableCredential.map((cred) => {\n        if (typeof cred !== 'string' && cred.proof?.jwt) {\n          return cred.proof.jwt\n        } else {\n          return cred\n        }\n      })\n      presentation.verifiableCredential = credentials\n    }\n\n    //issuanceDate/validFrom must not be present for presentations because it is not defined in a @context\n    delete presentation.issuanceDate\n    delete presentation.validFrom\n\n    let identifier: IIdentifier\n    try {\n      identifier = await context.agent.didManagerGet({ did: holder })\n    } catch (e) {\n      throw new Error(`invalid_argument: args.presentation.holderDID ${holder} must be a DID managed by this agent`)\n    }\n    try {\n      const { managedKey, verificationMethod } = await this.getSigningKey(identifier, args.keyRef)\n      const { signingKey, verificationMethodId } = await this.findSigningKeyWithId(context, identifier, { keyRef: args.keyRef })\n\n      return await this.ldCredentialModule.signLDVerifiablePresentation(\n        presentation,\n        identifier.did,\n        managedKey || signingKey, // todo: signingKey does not have the private key, so would never work\n        verificationMethodId ? verificationMethodId : (verificationMethod as string),\n        args.challenge,\n        args.domain,\n        args.purpose,\n        context,\n      )\n    } catch (error) {\n      debug(error)\n      return Promise.reject(error)\n    }\n  }\n\n  /** {@inheritdoc ICredentialHandlerLDLocal.verifyCredential} */\n  async verifyCredential(args: IVerifyCredentialVcdmArgs, context: IVcdmVerifierAgentContext): Promise<IVerifyResult> {\n    const credential = args.credential\n    let checkStatus = args.checkStatus\n    if (typeof checkStatus !== 'function' && (!args.statusList || args.statusList.disableCheckStatusList2021 !== true)) {\n      checkStatus = vcLibCheckStatusFunction({\n        ...args.statusList,\n        verifyStatusListCredential: false /*todo: enable. Needs calling this method first and not rely on @digiticalcredentials*/,\n      }) // todo: Probably should be moved to the module to have access to the loaders\n    }\n    return this.ldCredentialModule.verifyCredential(\n      credential as VerifiableCredentialSP,\n      context,\n      args.fetchRemoteContexts,\n      args.purpose,\n      checkStatus,\n    )\n  }\n\n  /** {@inheritdoc ICredentialHandlerLDLocal.verifyPresentation} */\n  async verifyPresentation(args: IVerifyPresentationLDArgs, context: IVcdmVerifierAgentContext): Promise<IVerifyResult> {\n    const presentation = args.presentation\n    let checkStatus = args.checkStatus\n    if (typeof checkStatus !== 'function' && args.statusList && !args.statusList.disableCheckStatusList2021) {\n      checkStatus = vcLibCheckStatusFunction({ ...args.statusList })\n    }\n    return this.ldCredentialModule.verifyPresentation(\n      presentation,\n      args.challenge,\n      args.domain,\n      context,\n      args.fetchRemoteContexts,\n      args.presentationPurpose,\n      checkStatus,\n    )\n  }\n\n  private async findSigningKeyWithId(\n    context: IAgentContext<IResolver & IDIDManager>,\n    identifier: IIdentifier,\n    opts?: {\n      keyRef?: string\n      didDocument?: DIDDocument\n    },\n  ): Promise<{ signingKey: IKey; verificationMethodId: string }> {\n    const keyRef = opts?.keyRef\n    debug(`Retrieving signing key for id ${identifier.did} keyref ${keyRef}...`)\n    const didDocument =\n      opts?.didDocument ??\n      (await getAgentResolver(context)\n        .resolve(identifier.did)\n        .then((result) => result.didDocument ?? undefined))\n    const extendedKeys: _ExtendedIKey[] = await mapIdentifierKeysToDocWithJwkSupport(\n      { identifier, vmRelationship: 'verificationMethod', didDocument },\n      context,\n    )\n    const supportedTypes = this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuiteTypes()\n    let signingKey: _ExtendedIKey | undefined\n    if (keyRef) {\n      signingKey = extendedKeys.find((k) => k.kid === keyRef)\n    }\n    if (signingKey && !supportedTypes.includes(signingKey.meta.verificationMethod.type)) {\n      debug('WARNING: requested signing key DOES NOT correspond to a supported Signature suite type. Looking for the next best key.')\n      signingKey = undefined\n    }\n    if (!signingKey) {\n      if (keyRef) {\n        debug('WARNING: no signing key was found that matches the reference provided. Searching for the first available signing key.')\n      }\n      signingKey = extendedKeys.find((k) => supportedTypes.filter((value) => value.startsWith(k.meta.verificationMethod.type)))\n    }\n\n    if (!signingKey) throw Error(`key_not_found: No suitable signing key found for ${identifier.did}. ${JSON.stringify(didDocument)}`)\n    const verificationMethodId = signingKey.meta.verificationMethod.id\n    debug(`Signing key for id ${identifier.did} and verification method id ${verificationMethodId} found.`)\n    return { signingKey, verificationMethodId }\n  }\n\n  /**\n   * Returns true if the key is supported by any of the installed LD Signature suites\n   * @param k - the key to match\n   *\n   * @internal\n   */\n  matchKeyForLDSuite(k: IKey): boolean {\n    // prefilter based on key algorithms\n    switch (k.type) {\n      case 'Ed25519':\n        if (!k.meta?.algorithms?.includes('EdDSA')) return false\n        break\n      case 'Secp256k1':\n        if (intersect(k.meta?.algorithms ?? [], ['ES256K-R', 'ES256K']).length == 0) return false\n        break\n    }\n\n    // TODO: this should return a list of supported suites, not just a boolean\n    const suites = this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuites()\n    return suites\n      .map((suite: SphereonLdSignature) => suite.getSupportedKeyType().includes(k.type))\n      .some((supportsThisKey: boolean) => supportsThisKey)\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,8DAAAA,SAAA;AAAA,IAAAA,QAAA;AAAA,MACE,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,sBAAwB;AAAA,UACtB,OAAO;AAAA,UACP,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,MAAQ;AAAA,YACR,KAAO;AAAA,YACP,KAAO;AAAA,YAEP,kBAAoB;AAAA,cAClB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,YAAY;AAAA,gBACZ,cAAc;AAAA,gBAEd,IAAM;AAAA,gBACN,MAAQ;AAAA,gBAER,MAAQ;AAAA,gBAER,yBAA2B;AAAA,cAC7B;AAAA,YACF;AAAA,YACA,kBAAoB,EAAE,OAAO,yBAAyB,SAAS,MAAM;AAAA,YACrE,mBAAqB,EAAE,OAAO,0BAA0B,SAAS,MAAM;AAAA,YACvE,UAAY,EAAE,OAAO,iBAAiB,SAAS,MAAM;AAAA,YACrD,gBAAkB,EAAE,OAAO,uBAAuB,SAAS,eAAe;AAAA,YAC1E,QAAU,EAAE,OAAO,eAAe,SAAS,MAAM;AAAA,YACjD,QAAU,EAAE,OAAO,eAAe,SAAS,eAAe;AAAA,YAC1D,QAAU,EAAE,OAAO,eAAe,SAAS,MAAM;AAAA,YACjD,cAAgB,EAAE,OAAO,qBAAqB,SAAS,eAAe;AAAA,YACtE,OAAS,EAAE,OAAO,aAAa,SAAS,OAAO,cAAc,SAAS;AAAA,YACtE,gBAAkB;AAAA,cAChB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,YAAY;AAAA,gBACZ,cAAc;AAAA,gBAEd,IAAM;AAAA,gBACN,MAAQ;AAAA,gBAER,MAAQ;AAAA,gBAER,0BAA4B;AAAA,cAC9B;AAAA,YACF;AAAA,YACA,YAAc,EAAE,OAAO,mBAAmB,SAAS,MAAM;AAAA,YACzD,WAAa,EAAE,OAAO,kBAAkB,SAAS,eAAe;AAAA,YAChE,YAAc,EAAE,OAAO,mBAAmB,SAAS,eAAe;AAAA,UACpE;AAAA,QACF;AAAA,QAEA,wBAA0B;AAAA,UACxB,OAAO;AAAA,UACP,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,MAAQ;AAAA,YACR,KAAO;AAAA,YAEP,QAAU,EAAE,OAAO,eAAe,SAAS,MAAM;AAAA,YACjD,OAAS,EAAE,OAAO,aAAa,SAAS,OAAO,cAAc,SAAS;AAAA,YACtE,sBAAwB,EAAE,OAAO,6BAA6B,SAAS,OAAO,cAAc,SAAS;AAAA,UACvG;AAAA,QACF;AAAA,QAEA,6BAA+B;AAAA,UAC7B,OAAO;AAAA,UACP,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,KAAO;AAAA,YACP,KAAO;AAAA,YAEP,WAAa;AAAA,YACb,SAAW,EAAE,OAAO,oCAAoC,SAAS,eAAe;AAAA,YAChF,QAAU;AAAA,YACV,SAAW,EAAE,OAAO,kBAAkB,SAAS,eAAe;AAAA,YAC9D,KAAO;AAAA,YACP,OAAS;AAAA,YACT,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,YAAY;AAAA,gBACZ,cAAc;AAAA,gBAEd,IAAM;AAAA,gBACN,MAAQ;AAAA,gBAER,KAAO;AAAA,gBAEP,iBAAmB,EAAE,OAAO,uBAAuB,SAAS,OAAO,cAAc,OAAO;AAAA,gBACxF,gBAAkB,EAAE,OAAO,4BAA4B,SAAS,OAAO,cAAc,OAAO;AAAA,cAC9F;AAAA,YACF;AAAA,YACA,YAAc;AAAA,YACd,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,MAAM;AAAA,UAC1E;AAAA,QACF;AAAA,QAEA,6BAA+B;AAAA,UAC7B,OAAO;AAAA,UACP,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,KAAO;AAAA,YACP,KAAO;AAAA,YAEP,WAAa;AAAA,YACb,SAAW,EAAE,OAAO,oCAAoC,SAAS,eAAe;AAAA,YAChF,QAAU;AAAA,YACV,SAAW,EAAE,OAAO,kBAAkB,SAAS,eAAe;AAAA,YAC9D,KAAO;AAAA,YACP,OAAS;AAAA,YACT,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,YAAY;AAAA,gBACZ,cAAc;AAAA,gBAEd,IAAM;AAAA,gBACN,MAAQ;AAAA,gBAER,KAAO;AAAA,gBAEP,iBAAmB,EAAE,OAAO,uBAAuB,SAAS,OAAO,cAAc,OAAO;AAAA,gBACxF,gBAAkB,EAAE,OAAO,4BAA4B,SAAS,OAAO,cAAc,OAAO;AAAA,cAC9F;AAAA,YACF;AAAA,YACA,YAAc;AAAA,YACd,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,MAAM;AAAA,UAC1E;AAAA,QACF;AAAA,QAEA,sBAAwB;AAAA,UACtB,OAAO;AAAA,UACP,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,KAAO;AAAA,YACP,KAAO;AAAA,YAEP,WAAa;AAAA,YACb,SAAW,EAAE,OAAO,oCAAoC,SAAS,eAAe;AAAA,YAChF,QAAU;AAAA,YACV,SAAW,EAAE,OAAO,kBAAkB,SAAS,eAAe;AAAA,YAC9D,KAAO;AAAA,YACP,OAAS;AAAA,YACT,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,YAAY;AAAA,gBACZ,cAAc;AAAA,gBAEd,IAAM;AAAA,gBACN,MAAQ;AAAA,gBAER,KAAO;AAAA,gBAEP,iBAAmB,EAAE,OAAO,uBAAuB,SAAS,OAAO,cAAc,OAAO;AAAA,gBACxF,gBAAkB,EAAE,OAAO,4BAA4B,SAAS,OAAO,cAAc,OAAO;AAAA,cAC9F;AAAA,YACF;AAAA,YACA,YAAc;AAAA,YACd,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,MAAM;AAAA,UAC1E;AAAA,QACF;AAAA,QAEA,kBAAoB;AAAA,UAClB,OAAO;AAAA,UACP,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YAEd,WAAa;AAAA,YACb,SAAW,EAAE,OAAO,oCAAoC,SAAS,eAAe;AAAA,YAChF,QAAU;AAAA,YACV,SAAW,EAAE,OAAO,kBAAkB,SAAS,eAAe;AAAA,YAC9D,KAAO;AAAA,YACP,OAAS;AAAA,YACT,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,YAAY;AAAA,gBACZ,cAAc;AAAA,gBAEd,IAAM;AAAA,gBACN,MAAQ;AAAA,gBAER,KAAO;AAAA,gBAEP,iBAAmB,EAAE,OAAO,uBAAuB,SAAS,OAAO,cAAc,OAAO;AAAA,gBACxF,gBAAkB,EAAE,OAAO,4BAA4B,SAAS,OAAO,cAAc,OAAO;AAAA,cAC9F;AAAA,YACF;AAAA,YACA,YAAc;AAAA,YACd,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,MAAM;AAAA,UAC1E;AAAA,QACF;AAAA,QAEA,OAAS,EAAE,OAAO,mCAAmC,SAAS,OAAO,cAAc,SAAS;AAAA,MAC9F;AAAA,IACF;AAAA;AAAA;;;AC5OA;AAAA,4DAAAC,SAAA;AAAA,IAAAA,QAAA;AAAA,MACE,YAAY;AAAA,QACV,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,aAAe;AAAA,QACf,iBAAmB;AAAA,UACjB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,WAAa;AAAA,UACX,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,WAAa;AAAA,UACX,OAAO;AAAA,QACT;AAAA,QACA,MAAQ;AAAA,QAER,sBAAwB;AAAA,UACtB,OAAO;AAAA,UACP,YAAY;AAAA,YACV,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,kBAAoB;AAAA,cAClB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,kBAAoB;AAAA,cAClB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,kBAAoB;AAAA,cAClB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,mBAAqB;AAAA,cACnB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,aAAe;AAAA,YACf,UAAY;AAAA,cACV,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,QAAU;AAAA,cACR,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,MAAQ;AAAA,YACR,OAAS;AAAA,cACP,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,iBAAmB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,YAAc;AAAA,cACZ,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,WAAa;AAAA,cACX,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,YAAc;AAAA,cACZ,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,QAEA,+BAAiC;AAAA,QAEjC,wBAA0B;AAAA,UACxB,OAAO;AAAA,UACP,YAAY;AAAA,YACV,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,QAAU;AAAA,cACR,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,OAAS;AAAA,cACP,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,YAAc;AAAA,cACZ,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,cACd,YAAY;AAAA,YACd;AAAA,UACF;AAAA,QACF;AAAA,QAEA,iCAAmC;AAAA,QAEnC,sBAAwB;AAAA,QAExB,YAAc;AAAA,UACZ,OAAO;AAAA,UACP,YAAY;AAAA,YACV,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,YAAc;AAAA,cACZ,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,QAEA,+BAAiC;AAAA,QAEjC,qBAAuB;AAAA,UACrB,OAAO;AAAA,UACP,YAAY;AAAA,YACV,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,aAAe;AAAA,cACb,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,eAAiB;AAAA,YACjB,KAAO;AAAA,UACT;AAAA,QACF;AAAA,QAEA,0BAA4B;AAAA,UAC1B,OAAO;AAAA,UACP,YAAY;AAAA,YACV,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,iBAAmB;AAAA,YACnB,eAAiB;AAAA,YACjB,eAAiB;AAAA,cACf,OAAO;AAAA,cACP,YAAY;AAAA,gBACV,cAAc;AAAA,gBAEd,IAAM;AAAA,gBACN,MAAQ;AAAA,gBAER,SAAW;AAAA,gBACX,QAAU;AAAA,cACZ;AAAA,YACF;AAAA,YACA,iBAAmB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,YAAc;AAAA,cACZ,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,QAEA,oBAAsB;AAAA,UACpB,OAAO;AAAA,UACP,YAAY;AAAA,YACV,cAAc;AAAA,YAEd,IAAM;AAAA,YACN,MAAQ;AAAA,YAER,WAAa;AAAA,YACb,SAAW;AAAA,cACT,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,aAAe;AAAA,cACb,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,QAAU;AAAA,YACV,SAAW;AAAA,cACT,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,OAAS;AAAA,YACT,eAAiB;AAAA,cACf,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,YAAY;AAAA,gBACV,cAAc;AAAA,gBAEd,IAAM;AAAA,gBACN,MAAQ;AAAA,gBAER,iBAAmB;AAAA,kBACjB,OAAO;AAAA,kBACP,SAAS;AAAA,kBACT,cAAc;AAAA,gBAChB;AAAA,gBACA,gBAAkB;AAAA,kBAChB,OAAO;AAAA,kBACP,SAAS;AAAA,kBACT,cAAc;AAAA,gBAChB;AAAA,gBACA,sBAAwB;AAAA,kBACtB,OAAO;AAAA,kBACP,SAAS;AAAA,kBACT,cAAc;AAAA,gBAChB;AAAA,gBACA,sBAAwB;AAAA,kBACtB,OAAO;AAAA,kBACP,SAAS;AAAA,kBACT,cAAc;AAAA,gBAChB;AAAA,gBACA,cAAgB;AAAA,kBACd,OAAO;AAAA,kBACP,SAAS;AAAA,kBACT,cAAc;AAAA,gBAChB;AAAA,cACF;AAAA,YACF;AAAA,YACA,YAAc;AAAA,cACZ,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,oBAAsB;AAAA,cACpB,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,QAEA,OAAO;AAAA,UACL,OAAO;AAAA,QACT;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,SAAW;AAAA,UACT,OAAO;AAAA,QACT;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,YAAY;AAAA,YACV,cAAc;AAAA,YAEd,KAAO;AAAA,cACL,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,KAAO;AAAA,cACL,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,UACL,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;AC1UA;;;;;;;;;;;;;;;;;;;;;;ACAA,oCAAqC;AAErC,mBAAwB;AACxB,4CAA6B;AAE7B,UAAqB;AACrB,2CAA2C;;;ACEpC,IAAeC,sBAAf,MAAeA;EAFtB,OAEsBA;;;EAwBpBC,2BAA2BC,cAAyC;AAGlE,UAAMC,wBAAwBD;AAC9B,QAAIC,uBAAuBC,UAAUC,UAAU,GAAG;AAChD,aAAOF,sBAAsBC;IAC/B;EACF;AACF;;;AD9BA,qBAAqE;AAG9D,IAAME,+BAAN,cAA2CC,oBAAAA;EAblD,OAakDA;;;EAChD,cAAc;AACZ,UAAK;AAELC,0CAAAA,SAAkBC;EACpB;EAEAC,+BAAuC;AACrC,WAAO;EACT;EAEAC,wBAAgC;AAC9B,WAAO;EACT;EACAC,sBAAgC;AAC9B,WAAO;EACT;EAEAC,aAAqB;AACnB,WAAO;EACT;EAEAC,mBAAmBC,KAAWC,WAAmBC,sBAA8BC,SAAuC;AACpH,UAAMC,aAAaH;AAGnB,UAAMI,KAAKH;AAEX,UAAMI,SAAS;;MAEbC,MAAM,8BAAOC,SAAAA;AACX,cAAMC,oBAAgBC,8BAAcF,KAAKG,IAAI;AAC7C,cAAMC,YAAY,MAAMT,QAAQU,MAAMC,eAAe;UACnDC,QAAQf,IAAIgB;UACZC,WAAW;UACXN,MAAMF;UACNS,UAAU;QACZ,CAAA;AACA,mBAAOC,8BAAcP,SAAAA;MACvB,GATM;IAUR;AAEA,UAAMQ,UAAU;MACdf;MACAD;MACAiB,iBAAqBC,aAAaC,eAAWvB,IAAIwB,cAAc,QAAA,GAAW,WAAA;MAC1ElB;MACAmB,MAAM,KAAK9B,6BAA4B;IACzC;AAGA,UAAM+B,kBAAkB,IAAIC,gEAA2BP,OAAAA;AAEvDM,oBAAgBpB,SAAS,MAAMA;AAG/B,WAAO,IAAIsB,mDAAqB;MAAE5B,KAAK0B;MAAiBpB;IAAe,CAAA;EACzE;EAEAuB,gCAAgCC,YAA0C;AACxE,UAAMC,SAASC,KAAKC,UAAUH,UAAAA;AAC9B,QAAIC,OAAOG,QAAQ,+BAAA,IAAmC,IAAI;AACxD,UAAIH,OAAOG,QAAQ,KAAKpC,WAAU,CAAA,MAAQ,IAAI;AAC5CgC,mBAAW,UAAA,IAAc;iBAAIK,sBAAQL,WAAW,UAAA,KAAe,CAAA,CAAE;UAAG,KAAKhC,WAAU;;MACrF;AAEA,YAAMsC,QAAQL,OAAOG,QAAQ,8BAAA;AAC7B,UAAIE,QAAQ,MAAMC,MAAMC,QAAQR,WAAW,UAAA,CAAW,GAAG;AACvD,eAAOA,WAAW,UAAA,EAAYM,KAAAA;MAChC;AACA,YAAMG,QAAQR,OAAOG,QAAQ,uCAAA;AAC7B,UAAIK,UAAU,MAAMF,MAAMC,QAAQR,WAAW,UAAA,CAAW,GAAG;AACzDA,mBAAW,UAAA,EAAYU,KAAK,uCAAA;MAC9B;IACF;EACF;EAEAC,0BAA+B;AAC7B,WAAO,IAAIb,mDAAAA;EACb;;EAGAc,6BAAmC;EAEnC;;EAGAC,6BAA6BC,QAAgBC,QAAqB;EAOlE;AACF;;;AE5GA,oCAAqC;AACrC,2CAA2C;AAC3C,IAAAC,kBAAqF;AAErF,4CAA6B;AAKtB,IAAMC,+BAAN,cAA2CC,oBAAAA;EATlD,OASkDA;;;EAChD,cAAc;AACZ,UAAK;AAELC,0CAAAA,SAAkBC;EACpB;EAEAC,+BAAyC;AACvC,WAAO;MAAC;MAA8B;;EACxC;EAEAC,wBAAgC;AAC9B,WAAO;EACT;EAEAC,sBAAgC;AAC9B,WAAO;EACT;EAEAC,aAAqB;AACnB,WAAO;EACT;EAEAC,mBAAmBC,KAAWC,WAAmBC,sBAA8BC,SAAuC;AACpH,UAAMC,aAAaH;AAGnB,UAAMI,KAAKH;AAEX,UAAMI,SAAS;;MAEbC,MAAM,8BAAOC,SAAAA;AACX,cAAMC,oBAAgBC,+BAAcF,KAAKG,IAAI;AAC7C,cAAMC,YAAY,MAAMT,QAAQU,MAAMC,eAAe;UACnDC,QAAQf,IAAIgB;UACZC,WAAW;UACXN,MAAMF;UACNS,UAAU;QACZ,CAAA;AACA,mBAAOC,+BAAcP,SAAAA;MACvB,GATM;IAUR;AAEA,UAAMQ,UAAU;MACdf;MACAD;MACAiB,wBAAoBC,gCAAetB,IAAIuB,cAAcvB,IAAIwB,IAAI,EAAEC;MAC/DnB,QAAQ,6BAAMA,QAAN;MACRkB,MAAM,KAAK7B,6BAA4B;IACzC;AAGA,UAAM+B,kBAAkB,IAAIC,gEAA2BP,OAAAA;AAEvDM,oBAAgBpB,SAAS,MAAMA;AAG/B,WAAO,IAAIsB,mDAAqB;MAC9B5B,KAAK0B;MACLpB;IACF,CAAA;EACF;EACAuB,gCAAgCC,YAA0C;EAO1E;EAEAC,0BAA+B;AAC7B,WAAO,IAAIH,mDAAAA;EACb;;EAGAI,6BAAmC;EAAC;;EAGpCC,+BAAqC;EAErC;AACF;;;AC1FA,IAAAC,gBAAwC;AACxC,8CAAqB;AAErB,oBAAuC;AAEvC,yBAA2B;AAI3B,IAAM,EAAEC,kCAAkCC,oCAAmC,IAAKC,wCAAAA;AAE3E,IAAMC,8CAAN,cAA0DC,oBAAAA;EAXjE,OAWiEA;;;EAC/DC,+BAAuC;AACrC,WAAO;EACT;EAEAC,wBAAgC;AAC9B,WAAO;EACT;EAEAC,sBAAgC;AAC9B,WAAO;EACT;EAEAC,mBAAmBC,KAAWC,KAAaC,oBAA4BC,SAAuC;AAC5G,UAAMC,aAAaH;AACnB,UAAMI,SAAS;;MAEbC,MAAM,8BAAOC,SAAAA;AACX,cAAMC,SAAS;UACbC,KAAK;UACLC,KAAK;UACLC,MAAM;YAAC;;QACT;AACA,cAAMC,mBAAeC,8BAAeL,MAAAA;AACpC,cAAMM,oBAAgBC,cAAAA,QAAa;cAACC,+BAAW,GAAGJ,YAAAA,KAAiB,OAAA;UAAUL,KAAKU;SAAK;AACvF,cAAMC,YAAY,MAAMf,QAAQgB,MAAMC,eAAe;UACnDC,QAAQrB,IAAIsB;UACZC,WAAW;UACXN,MAAMH;UACNU,UAAU;QACZ,CAAA;AACA,eAAO,GAAGZ,YAAAA,KAAiBM,SAAAA;MAC7B,GAfM;IAgBR;AAEA,UAAMO,QAAQ,IAAIjC,oCAAoC;;MAEpDQ,KAAK,IAAIT,iCAAiC;QACxCmC,cAAc1B,IAAI0B;QAClBrB,QAAQ,6BAAMA,QAAN;QACRsB,MAAM,KAAK/B,6BAA4B;QACvCQ;QACAwB,IAAI1B;MACN,CAAA;IACF,CAAA;AAEAuB,UAAMI,qBAAqB,CAAC,EAAEC,SAAQ,MAA+C;AACnFA,eAAS,UAAA,IAAc;eAAIC,uBAAQD,SAAS,UAAA,KAAe,CAAA,CAAE;QAAG,KAAKE,WAAU;;IACjF;AAEA,WAAOP;EACT;EAEAQ,0BAA+B;AAC7B,WAAO,IAAIzC,oCAAAA;EACb;EAEA0C,kCAAwC;EAAC;EAEzCC,2BAA2BC,YAAqC;AAC9DA,eAAW,UAAA,IAAc;aACpBL,uBAAQK,WAAW,UAAA,KAAe,CAAA,CAAE;MACvC;;EAEJ;EAEAC,6BAA6BC,QAAgBC,QAA2B;AACtE,UAAMC,MACJD,OAAO,UAAA,GAAaE,QAAQ,6GAAA,KAAkH;AAChJ,QAAIC,MAAMC,QAAQJ,OAAO,UAAA,CAAW,KAAKC,QAAQ,IAAI;AACnDD,aAAO,UAAA,EAAYC,GAAAA,IAAO,KAAKR,WAAU;IAC3C;AAEA,QAAIM,OAAOM,YAAW,EAAGC,WAAW,UAAA,GAAa;AAG/CN,aAAOO,oBAAoBC,QAAQ,CAACC,MAAAA;AAClC,YAAIA,EAAEC,qBAAqB;AACzBD,YAAEE,kBAAkBF,EAAEC,oBAAoBE,UAAU,GAAGH,EAAEC,oBAAoBG,YAAY,GAAA,CAAA;QAC3F;MACF,CAAA;IACF;EACF;EAEApB,aAAqB;AACnB,WAAO;EACT;AACF;;;ACnGA,IAAAqB,4BAAmB;AACnB,IAAAC,MAAoB;AACpB,IAAAC,kBAAiC;AAKjC,IAAAC,gBAAkB;;;ACPlB,+BAAmB;AACnB,SAAoB;AAEpB,yBAAkB;AAClB,mBAAkB;AAIlB,yBAAiC;AAIjC,IAAMC,YAAQC,aAAAA,SAAM,oCAAA;AAKb,IAAMC,mBAAN,MAAMA;EAjBb,OAiBaA;;;EACMC;EACjBC;EACiBC;EACAC;EACAC;EAEjB,YAAYC,SAQT;AACD,SAAKL,kBAAkBK,QAAQL;AAC/B,SAAKC,gBAAgBI,QAAQJ;AAC7B,SAAKC,kBAAkBG,SAASC,gBAAgBJ;AAChD,SAAKC,wBAAwBE,SAASC,gBAAgBH;AACtD,SAAKC,qBAAqBC,SAASC,gBAAgBF;EACrD;EAEAG,UACEC,SACA,EACEC,yBAAyB,OACzBC,eAAc,GAWhB;AACA,WAAOC,yBAAAA,QAAOC,oBAAoB,OAAOC,QAAAA;AACvC,UAAI,CAACA,OAAOA,IAAIC,KAAI,EAAGC,WAAW,GAAG;AACnC,cAAMC,MAAM,6CAAA;MACd;AAEA,UAAIH,IAAII,WAAW,GAAA,KAAQP,eAAeQ,WAAWC,QAAW;AAC9DN,eAAO,OAAOH,eAAeQ,WAAW,WAAWR,eAAeQ,SAASR,eAAeQ,OAAOE,MAAMP;AACvGhB,cAAMgB,GAAAA;MACR;AAEA,UAAIA,IAAIQ,YAAW,EAAGJ,WAAW,MAAA,GAAS;AAExC,cAAMK,mBAAmB,UAAMC,qCAAiBf,SAA+B;UAC7EN,iBAAiB,KAAKA;UACtBE,oBAAoB,KAAKA;UACzBD,uBAAuB,KAAKA;QAC9B,CAAA,EAAGqB,QAAQX,GAAAA;AAEX,YAAIY,SAA6BH,iBAAiBI;AAClD,YAAI,CAACD,QAAQ;AACX,gBAAM,IAAIT,MAAM,0CAA0CH,GAAAA,kCAAqC;QACjG;AAIA,aAAKZ,cAAc0B,sBAAqB,EAAGC,QAAQ,CAACC,MAAMA,EAAEC,6BAA6BjB,KAAKY,MAAAA,CAAAA;AAG9F,YAAIA,OAAOM,WAAW;AACpB,cAAI,CAACN,OAAOO,oBAAoB;AAC9BP,mBAAOO,qBAAqB,CAAA;UAC9B;AACAP,iBAAOO,qBAAqB;eAAIP,OAAOO;eAAuBP,OAAOM;;AACrE,cAAIN,OAAOO,mBAAmBjB,WAAW,GAAG;AAC1C,kBAAM,IAAIC,MAAM,wCAAwCH,GAAAA,EAAK;UAC/D;AACA,iBAAOY,OAAOM;QAChB;AAEA,cAAME,UAAUpB;AAChB,YAAIA,IAAIqB,QAAQ,GAAA,IAAO,KAAKT,UAAU,OAAOA,WAAW,YAAY,cAAcA,QAA0C;AAG1H,gBAAMU,YAAY,MAAM3B,QAAQ4B,MAAMC,oBAAoB;YAAEX,aAAaD;YAAQa,QAAQL;UAAQ,CAAA;AACjGpC,gBAAM,oBAAA;AACNA,gBAAM0C,KAAKC,UAAUL,SAAAA,CAAAA;AACrB,cAAIA,aAAa,OAAOA,cAAc,YAAYA,UAAUf,IAAI;AAE9D,kBAAMqB,WAAW,KAAKxC,cACnB0B,sBAAqB,EACrBe,OAAO,CAACb,MAAMA,EAAEc,6BAA4B,MAAOR,UAAUS,IAAI,EACjEF,OAAO,CAACG,OAAOC,OAAOC,SAASA,KAAKb,QAAQW,KAAAA,MAAWC,KAAAA,EACvDE,IAAI,CAACH,UAAUA,MAAMI,WAAU,CAAA;AAClC,kBAAMC,WAAW;cACf,GAAGf;cACH,GAAIgB,MAAMC,QAAQX,QAAAA,KAAaA,SAAS1B,SAAS,IAAI;gBAAE,YAAY0B;cAAS,IAAI;gBAAE,YAAYhB,OAAO,UAAA;cAAY;YACnH;AAEA,mBAAO;cACL4B,YAAY;cACZC,aAAazC;cACb0C,UAAUL;YACZ;UACF;QACF;AAEA,eAAO;UACLG,YAAY;UACZC,aAAazC;UACb0C,UAAU9B;QACZ;MACF;AAEA,UAAI,KAAKzB,gBAAgBwD,IAAI3C,GAAAA,GAAM;AACjC,cAAM4C,aAAa,MAAM,KAAKzD,gBAAgB0D,IAAI7C,GAAAA;AAClD,eAAO;UACLwC,YAAY;UACZC,aAAazC;UACb0C,UAAUE;QACZ;MACF,OAAO;AACL,YAAIhD,wBAAwB;AAC1BZ,gBAAM,sDAAsDgB,GAAAA;AAC5D,cAAI;AACF,kBAAM8C,WAAW,UAAMC,mBAAAA,SAAM/C,KAAK;cAAEgD,UAAU;YAAS,CAAA;AACvD,gBAAIF,SAASG,WAAW,KAAK;AAC3B,oBAAMP,WAAW,MAAMI,SAASI,KAAI;AAEpC,kBAAIlD,IAAII,WAAW,kDAAA,GAAqD;AACtE,uBAAOsC,SAASS;cAClB;AACA,qBAAO;gBACLX,YAAY;gBACZC,aAAazC;gBACb0C;cACF;YACF;UACF,SAASU,GAAG;AACVpE,kBAAM,4DAA4DoE,CAAAA;UACpE;QACF;MACF;AAEApE,YAAM,oDAAoDgB,GAAAA;wCAA+C;AAEzG,aAAUqD,yBAAsBrD,GAAAA;IAClC,CAAA;EACF;AACF;;;ACpKA,IAAAsD,4BAAmB;AAEZ,IAAMC,eAAeC,0BAAAA,QAAOC,SAASF;AACrC,IAAMG,yBAAyBF,0BAAAA,QAAOC,SAASC;AAC/C,IAAMC,wBAAwBH,0BAAAA,QAAOC,SAASE;AAC9C,IAAMC,6BAA6BJ,0BAAAA,QAAOC,SAASG;AAMnD,IAAKC,cAAAA,0BAAAA,cAAAA;;;;;SAAAA;;AASL,IAAKC,SAAAA,0BAAAA,SAAAA;;;;;;SAAAA;;;;AFLZ,IAAM,EAAEC,SAAQ,IAAKC,0BAAAA;AAOrB,IAAMC,gBAAeF,SAASE;AAC9B,IAAMC,yBAAwBH,SAASG;AACvC,IAAMC,8BAA6BJ,SAASI;AAE5C,IAAMC,aAAQC,cAAAA,SAAM,6CAAA;AAEb,IAAMC,qBAAN,MAAMA;EA5Bb,OA4BaA;;;;;;;;;;EASXC;EACQC;EAER,YAAYC,SAQT;AACD,SAAKF,gBAAgBE,QAAQF;AAC7B,SAAKC,mBAAmB,IAAIE,iBAAiBD,OAAAA;EAC/C;EAEA,MAAME,4BACJC,MAQAC,SACiC;AACjC,UAAM,EAAEC,KAAKC,WAAWC,sBAAsBC,WAAU,IAAKL;AAC7D,UAAMM,UAAUN,KAAKM;AACrBd,IAAAA,OAAM,8BAA8BU,IAAIK,GAAG,KAAK;AAEhD,UAAMC,QAAQ,KAAKb,cAAcc,4BAA4BP,IAAIQ,MAAMR,IAAIS,MAAMC,oBAAoBF,QAAQ,EAAA,EAAI,CAAA;AAEjH,UAAMG,iBAAiB,KAAKjB,iBAAiBkB,UAAUb,SAAS;MAC9Dc,wBAAwB;MACxBC,gBAAgBX;IAClB,CAAA;AAGAG,UAAMS,2BAA2BZ,UAAAA;AACjCb,IAAAA,OAAM,uCAAuCY,oBAAAA,KAAyB;AACtE,UAAMc,eAAe,MAAMV,MAAMW,mBAAmBjB,KAAKC,WAAWC,sBAAsBH,OAAAA;AAC1FT,IAAAA,OAAM,UAAUW,SAAAA,uBAAgCD,IAAIK,GAAG,KAAK;AAC5D,YAAIa,kCAA8DnB,SAAS,yBAAA,GAA4B;AAGrG,UAAII,WAAWgB,oBAAoB,CAAChB,WAAWgB,iBAAiBC,sBAAsB;AACpF,cAAMC,qBAAqB,MAAMtB,QAAQuB,MAAMC,wBAAwB;UAAE,GAAGzB,KAAK0B;UAAsBrB;QAAW,CAAA;AAClH,YAAIkB,mBAAmBF,kBAAkB;AACvChB,qBAAWgB,mBAAmBE,mBAAmBF;QACnD;MACF;IACF;AAEA,QAAIM;AAEJ,QAAIzB,IAAIQ,SAAS,cAAc;AAC7BiB,6BAAuB,MAAMvC,0BAAAA,QAAOwC,MAAMC,KAAKxB,YAAY;QACzDG,OAAOU;QACPZ;QACAO;QACAiB,cAAc;MAChB,CAAA;IACF,OAAO;AACLH,6BAAuB,MAASI,UAAM;QACpC1B;QACAC;QACAE,OAAOU;QACPL;QACAiB,cAAc;MAChB,CAAA;IACF;AACAtC,IAAAA,OAAM,UAAUW,SAAAA,mBAA4BD,IAAIK,GAAG,EAAE;AACrD,WAAOoB;EACT;EAEA,MAAMK,6BACJC,cACAC,WACAhC,KACAE,sBACA+B,WACAC,QACA9B,UAA+B,CAAC6B,YAC5B,IAAI7C,uBAAAA,IACJ,IAAIC,4BAA2B;IAC7B6C;IACAD;EACF,CAAA,GACJlC,SACmC;AAEnC,UAAMO,QAAQ,KAAKb,cAAcc,4BAA4BP,IAAIQ,MAAMR,IAAIS,MAAMC,oBAAoBF,QAAQ,EAAA,EAAI,CAAA;AACjH,UAAMG,iBAAiB,KAAKjB,iBAAiBkB,UAAUb,SAAS;MAC9Dc,wBAAwB;MACxBC,gBAAgBiB;IAClB,CAAA;AAEAzB,UAAM6B,2BAA2BJ,YAAAA;AAEjC,QAAI/B,IAAIQ,SAAS,cAAc;AAC7B,aAAO,MAAMtB,0BAAAA,QAAOwC,MAAMC,KAAKI,cAAc;QAC3CzB,OAAO,MAAMA,MAAMW,mBAAmBjB,KAAKgC,WAAW9B,sBAAsBH,OAAAA;QAC5EK;QACAO;QACAiB,cAAc;MAChB,CAAA;IACF;AACA,WAAO,MAASQ,qBAAiB;MAC/BL;MACAzB,OAAO,MAAMA,MAAMW,mBAAmBjB,KAAKgC,WAAW9B,sBAAsBH,OAAAA;MAC5EkC;MACAC;MACAvB;MACAP;MACAwB,cAAc;IAChB,CAAA;EACF;EAEA,MAAMS,iBACJlC,YACAJ,SACAuC,sBAAsB,OACtBlC,UAA+B,IAAIhB,uBAAAA,GACnCmD,aACwB;AACxB,UAAMC,qBAAqB,KAAKC,yBAAyB1C,OAAAA;AACzD,SAAKN,cAAciD,sBAAqB,EAAGC,QAAQ,CAACrC,UAAUA,MAAMsC,gCAAgCzC,UAAAA,CAAAA;AAEpG,UAAMQ,iBAAiB,KAAKjB,iBAAiBkB,UAAUb,SAAS;MAC9Dc,wBAAwByB;MACxBxB,gBAAgBX;IAClB,CAAA;AAmBA,UAAM0C,SAAS,MAASR,qBAAiB;MACvClC;MACAG,OAAOkC;MACP7B;MACAP;MACAwB,cAAc;MACdW;IACF,CAAA;AAEA,QAAIM,OAAOC,UAAU;AACnB,WAAK/C,QAAQuB,MAAMyB,KAAKC,OAAOC,qBAAqB;QAAE9C;QAAY,GAAG0C;MAAO,CAAA;IAC9E,OAAO;AAELvD,MAAAA,OAAM,6CAA6C4D,KAAKC,UAAUN,QAAQ,MAAM,CAAA,CAAA,EAAI;AACpFO,cAAQC,IAAI;EAA2BH,KAAKC,UAAUN,QAAQ,MAAM,CAAA,CAAA,EAAI;AACxE,WAAK9C,QAAQuB,MAAMyB,KAAKC,OAAOM,0BAA0B;QAAEnD;QAAY,GAAG0C;MAAO,CAAA;IACnF;AACA,WAAOA;EACT;EAEQJ,yBAAyB1C,SAAoC;AACnE,WAAO,KAAKN,cAAciD,sBAAqB,EAAGa,IAAI,CAACC,MAAMA,EAAEC,wBAAwB1D,OAAAA,CAAAA;EACzF;EAEA,MAAM2D,mBACJ3B,cACAE,WACAC,QACAnC,SACAuC,sBAAsB,OACtBqB,sBAA2C,CAAC1B,YACxC,IAAI7C,uBAAAA,IACJ,IAAIC,4BAA2B;IAAE6C;IAAQD;EAAU,CAAA,GACvDM,aAEwB;AACxB,QAAI,OAAOR,iBAAiB,UAAU;AACpC,aAAO;QACLe,UAAU;QACVc,OAAO;UACLC,SAAS;QACX;MACF;IACF;AAkBA,UAAMhB,SAAS,MAASiB,WAAO;MAC7B/B;MACAzB,OAAO,KAAKmC,yBAAyB1C,OAAAA;MACrCY,gBAAgB,KAAKjB,iBAAiBkB,UAAUb,SAAS;QACvDc,wBAAwByB;QACxBxB,gBAAgBiB;MAClB,CAAA;MACAE;MACAC;MACAyB;MACA/B,cAAc;MACdW;IACF,CAAA;AAGA,QAAIM,OAAOC,aAAa,CAACD,OAAOkB,sBAAsBlB,OAAOkB,mBAAmBjB,WAAW;AACzF/C,cAAQuB,MAAMyB,KAAKC,OAAOgB,uBAAuB;QAAEjC;QAAc,GAAGc;MAAO,CAAA;IAC7E,OAAO;AAELvD,MAAAA,OAAM,+CAA+C4D,KAAKC,UAAUN,QAAQ,MAAM,CAAA,CAAA,EAAI;AACtF9C,cAAQuB,MAAMyB,KAAKC,OAAOiB,4BAA4B;QAAElC;QAAc,GAAGc;MAAO,CAAA;IAClF;AACA,WAAOA;EACT;AACF;;;AG3QA,IAAAqB,gBAA4D;AAErD,IAAMC,kBAAN,MAAMA;EARb,OAQaA;;;EACMC;EAEjB,YAAYC,SAAiE;AAC3E,SAAKD,WAAW,CAAC;AACjBE,UAAMC,KAAKF,QAAQG,eAAe,CAACC,YAAAA;AACjC,YAAMC,UAAMC,0BAAWF,OAAAA,IAAWA,UAAUG,OAAOC,QAAQJ,OAAAA;AAE3D,iBAAW,CAACK,KAAKC,KAAAA,KAAUL,KAAc;AACvC,aAAKN,SAASU,GAAAA,IAAOC;MACvB;IACF,CAAA;EACF;EAEAC,IAAIC,KAAsB;AACxB,WAAO,KAAKb,SAASa,GAAAA,MAAS,QAAQ,OAAO,KAAKb,SAASa,GAAAA,MAAS;EACtE;EAEA,MAAMC,IAAID,KAAkC;AAC1C,WAAO,KAAKb,SAASa,GAAAA;EACvB;AACF;;;AC1BA,IAAAE,kBAAwB;AAMjB,IAAMC,gBAAN,MAAMA;EANb,OAMaA;;;EACX,YAAYC,SAAuD;AACjEA,YAAQC,kBAAkBC,QAAQ,CAACC,UAAAA;AACjC,YAAMC,UAAUD,MAAME,oBAAmB;AAEzC,UAAIC,kBAAkB,KAAKC,aAAaH,OAAAA,KAAY,CAAC;AACrDI,mCAAgBL,MAAMM,6BAA4B,CAAA,EAAIP,QAAQ,CAACQ,qBAAAA;AAC7DJ,wBAAgBI,gBAAAA,IAAoB;aAAKJ,gBAAgBI,gBAAAA,KAAqB,CAAA;UAAKP;;MACrF,CAAA;AACA,aAAQ,KAAKI,aAAaH,OAAAA,IAAW;QAAE,GAAG,KAAKG,aAAaH,OAAAA;QAAU,GAAGE;MAAgB;IAO3F,CAAA;EACF;EAEQC,eAAsE,CAAC;EAE/EI,4BAA4BP,SAAmBM,kBAAkD;AAG/F,UAAME,uBAAuB,KAAKL,aAAaH,OAAAA;AAC/C,UAAMS,SACJH,oBAAoBA,qBAAqB,MAAMA,qBAAqB,mBAChEE,qBAAqBF,gBAAAA,IACrBI,OAAOC,OAAOH,wBAAwB,CAAC,CAAA,IAAK,CAAA;AAElD,QAAII,MAAMC,QAAQJ,MAAAA,KAAWA,OAAOK,SAAS,GAAG;AAC9C,aAAOL;IACT;AACA,UAAM,IAAIM,MACR,gDAAgDf,OAAAA,0BAAiCM,oBAAoB,QAAA;GAAiCI,OAAOM,QAC3I,KAAKb,YAAY,EAEhBc,IACC,CAAC,CAACC,IAAIC,MAAAA,MACJ;UAAaD,EAAAA;SAAcR,OAAOM,QAAQG,MAAAA,EACvCF,IACC,CAAC,CAACX,mBAAkBG,OAAAA,MAClB;yBAA4BH,iBAAAA;yBAA4CG,QAAOQ,IAAI,CAAClB,UAAUA,MAAMqB,sBAAqB,CAAA,EAAIC,KAAK,IAAA,CAAA,EAAO,EAE5IA,KAAK,IAAA,CAAA,EAAO,EAElBA,KAAK,IAAA,CAAA,EAAO;EAEnB;EAEAC,wBAA+C;AAC7C,WAAO;SACF,IAAIC,IACLb,OAAOC,OAAO,KAAKR,YAAY,EAC5Bc,IAAI,CAACO,MAAMd,OAAOC,OAAOa,CAAAA,CAAAA,EACzBC,KAAK,CAAA,CAAA;;EAGd;EAEAC,4BAAsC;AACpC,WAAO;SACF,IAAIH,IACLb,OAAOC,OAAO,KAAKR,YAAY,EAC5Bc,IAAI,CAACO,MAAMd,OAAOiB,KAAKH,CAAAA,CAAAA,EACvBC,KAAI,CAAA;;EAGb;AACF;;;AC9EA;AAAA,EACE,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,IAAM;AAAA,IACN,MAAQ;AAAA,IACR,qBAAuB;AAAA,MACrB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,WAAa;AAAA,QACb,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,QAAU;AAAA,QACV,YAAc;AAAA,QACd,OAAS;AAAA,QACT,cAAgB;AAAA,UACd,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,IAAM;AAAA,YACN,MAAQ;AAAA,YACR,iBAAmB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,UACF;AAAA,QACF;AAAA,QACA,oBAAsB;AAAA,UACpB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,0BAA4B;AAAA,MAC1B,OAAO;AAAA,MACP,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,WAAa;AAAA,QACb,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,QAAU;AAAA,QACV,OAAS;AAAA,QACT,cAAgB;AAAA,UACd,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,IAAM;AAAA,YACN,MAAQ;AAAA,YACR,KAAO;AAAA,YACP,iBAAmB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAc;AAAA,QACd,oBAAsB;AAAA,UACpB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,mBAAqB;AAAA,MACnB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,YAAc;AAAA,UACZ,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,iBAAmB;AAAA,UACjB,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,IACA,mBAAqB;AAAA,MACnB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,YAAc;AAAA,UACZ,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,iBAAmB;AAAA,UACjB,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AChIA;AAAA,EACE,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,IAEd,MAAQ;AAAA,IACR,aAAe;AAAA,IACf,YAAc;AAAA,IACd,OAAS,EAAE,OAAO,2BAA2B,SAAS,MAAM;AAAA,IAE5D,uBAAyB;AAAA,MACvB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,aAAe;AAAA,QACf,MAAQ;AAAA,QACR,YAAc;AAAA,QACd,OAAS,EAAE,OAAO,2BAA2B,SAAS,MAAM;AAAA,MAC9D;AAAA,IACF;AAAA,IAEA,mBAAqB;AAAA,MACnB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,MAAQ;AAAA,QACR,QAAU;AAAA,QACV,KAAO;AAAA,QAEP,cAAgB;AAAA,QAChB,WAAa,EAAE,OAAO,oBAAoB,SAAS,eAAe;AAAA,QAClE,wBAA0B;AAAA,QAC1B,YAAc;AAAA,QACd,QAAU;AAAA,QACV,WAAa;AAAA,QACb,aAAe;AAAA,QACf,WAAa;AAAA,QACb,eAAiB,EAAE,OAAO,sBAAsB,SAAS,eAAe;AAAA,MAC1E;AAAA,IACF;AAAA,IAEA,QAAU;AAAA,EACZ;AACF;;;ACrDA;AAAA,EACE,YAAY;AAAA,IACV,IAAM;AAAA,IACN,MAAQ;AAAA,IACR,cAAc;AAAA,IACd,OAAS;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,IAChB;AAAA,IACA,4BAA8B;AAAA,MAC5B,OAAO;AAAA,IACT;AAAA,IACA,sBAAwB;AAAA,MACtB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,WAAa;AAAA,QACb,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,QAAU;AAAA,QACV,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,OAAS;AAAA,QACT,cAAgB;AAAA,UACd,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,IAAM;AAAA,YACN,MAAQ;AAAA,YACR,iBAAmB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAc;AAAA,UACZ,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,oBAAsB;AAAA,UACpB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AC5EA;AAAA,EACE,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,2BAA6B;AAAA,IAC7B,6BAA+B;AAAA,MAC7B,OAAO;AAAA,MACP,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,QAAU;AAAA,QACV,cAAgB;AAAA,UACd,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,IAAM;AAAA,YACN,MAAQ;AAAA,YACR,iBAAmB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,UACF;AAAA,QACF;AAAA,QACA,cAAgB;AAAA,UACd,OAAO;AAAA,UACP,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,IAAM;AAAA,YACN,MAAQ;AAAA,YACR,eAAiB;AAAA,cACf,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,aAAe;AAAA,YACf,QAAU;AAAA,cACR,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,QACA,QAAU;AAAA,UACR,OAAO;AAAA,UACP,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,IAAM;AAAA,YACN,MAAQ;AAAA,YACR,OAAS;AAAA,cACP,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,YACA,aAAe;AAAA,YACf,QAAU;AAAA,cACR,OAAO;AAAA,cACP,SAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAc;AAAA,QACd,oBAAsB;AAAA,UACpB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,sBAAwB;AAAA,MAC1B;AAAA,IACF;AAAA,EACF;AACF;;;AC5FA;AAAA,EACE,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,IAAM;AAAA,IACN,MAAQ;AAAA,IACR,cAAc;AAAA,IACd,gBAAkB;AAAA,MAChB,OAAO;AAAA,IACT;AAAA,IACA,sBAAwB;AAAA,MACtB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,YAAY;AAAA,QACZ,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,cAAc;AAAA,QACd,WAAa;AAAA,QACb,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,QAAU;AAAA,QACV,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,QACP,OAAS;AAAA,QACT,cAAgB;AAAA,UACd,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,YACV,YAAY;AAAA,YACZ,cAAc;AAAA,YACd,IAAM;AAAA,YACN,MAAQ;AAAA,YACR,iBAAmB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,UACF;AAAA,QACF;AAAA,QACA,oBAAsB;AAAA,UACpB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACtEA;AAAA,EACE,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,IAAM;AAAA,IACN,MAAQ;AAAA,IACR,UAAY;AAAA,IACZ,qCAAuC;AAAA,IACvC,kCAAoC;AAAA,IACpC,cAAgB;AAAA,MACd,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,IACA,eAAiB;AAAA,MACf,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,IACA,cAAgB;AAAA,IAChB,eAAiB;AAAA,IACjB,iBAAmB;AAAA,EACrB;AACF;;;ACpBA;AAAA,EACE,YAAY;AAAA,IACV,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,SAAW;AAAA,IACX,MAAQ;AAAA,EACV;AACF;;;ACPA;AAAA,EACE,YAAY;AAAA,IACV;AAAA,MACE,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,MACE,uBAAyB;AAAA,MACzB,oBAAsB;AAAA,MACtB,uBAAyB;AAAA,MACzB,6BAA+B;AAAA,MAC/B,6BAA+B;AAAA,MAC/B,mCAAqC;AAAA,MACrC,mCAAqC;AAAA,MACrC,sBAAwB;AAAA,MACxB,4BAA8B;AAAA,MAC9B,mBAAqB;AAAA,MACrB,oBAAsB;AAAA,MACtB,sBAAwB;AAAA,MACxB,cAAgB;AAAA,MAChB,oBAAsB;AAAA,MACtB,kBAAoB;AAAA,MACpB,wBAA0B;AAAA,MAC1B,mBAAqB;AAAA,MACrB,eAAiB;AAAA,MACjB,oBAAsB;AAAA,MACtB,iBAAmB;AAAA,MACnB,kBAAoB;AAAA,MACpB,2BAA6B;AAAA,MAE7B,eAAiB;AAAA,MACjB,iBAAmB,EAAE,OAAO,uBAAuB,SAAS,OAAO,cAAc,OAAO;AAAA,MACxF,gBAAkB,EAAE,OAAO,4BAA4B,SAAS,OAAO,cAAc,OAAO;AAAA,MAC5F,YAAc,EAAE,OAAO,kBAAkB,SAAS,MAAM;AAAA,MACxD,kBAAoB;AAAA,MACpB,iBAAmB,EAAE,OAAO,uBAAuB,SAAS,OAAO,cAAc,QAAQ;AAAA,MACzF,sBAAwB,EAAE,OAAO,kCAAkC,SAAS,OAAO,cAAc,OAAO;AAAA,MACxG,sBAAwB,EAAE,OAAO,kCAAkC,SAAS,OAAO,cAAc,OAAO;AAAA,MACxG,QAAU,EAAE,OAAO,cAAc,SAAS,OAAO,cAAc,OAAO;AAAA,MACtE,WAAa;AAAA,MACb,YAAc;AAAA,MACd,YAAc,EAAE,OAAO,kBAAkB,SAAS,MAAM;AAAA,MACxD,WAAa,EAAE,OAAO,iBAAiB,SAAS,MAAM;AAAA,MACtD,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,cAAc;AAAA,MAChF,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,cAAc;AAAA,MAChF,kBAAoB,EAAE,OAAO,wBAAwB,SAAS,MAAM;AAAA,MACpE,SAAW,EAAE,OAAO,eAAe,SAAS,MAAM;AAAA,MAClD,KAAO;AAAA,MACP,cAAgB,EAAE,OAAO,0BAA0B,SAAS,OAAO,cAAc,OAAO;AAAA,MACxF,WAAa,EAAE,OAAO,gBAAgB;AAAA,MACtC,kBAAoB,EAAE,OAAO,wBAAwB,SAAS,MAAM;AAAA,MACpE,WAAa;AAAA,MACb,OAAS,EAAE,OAAO,aAAa,SAAS,OAAO,cAAc,SAAS;AAAA,MACtE,cAAgB,EAAE,OAAO,oBAAoB,SAAS,SAAS;AAAA,MAC/D,YAAc;AAAA,MACd,aAAe;AAAA,MACf,cAAgB;AAAA,MAChB,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,MAAM;AAAA,MACxE,YAAc;AAAA,MACd,YAAc;AAAA,IAChB;AAAA,EACF;AACF;;;AC9DA;AAAA,EACE,YAAY;AAAA,IACV,IAAM;AAAA,IACN,MAAQ;AAAA,IAER,IAAM;AAAA,IACN,KAAO;AAAA,IACP,KAAO;AAAA,IAEP,2BAA6B;AAAA,IAC7B,sBAAwB;AAAA,IACxB,kBAAoB;AAAA,IACpB,oBAAsB;AAAA,IACtB,yBAA2B;AAAA,IAC3B,yBAA2B;AAAA,IAC3B,kBAAoB;AAAA,IAEpB,mBAAqB;AAAA,IACrB,2BAA6B;AAAA,IAC7B,iBAAmB;AAAA,IACnB,YAAc;AAAA,IACd,WAAa;AAAA,IACb,SAAW,EAAE,OAAO,cAAc,SAAS,eAAe;AAAA,IAC1D,SAAW,EAAE,OAAO,cAAc,SAAS,MAAM;AAAA,IACjD,iBAAmB;AAAA,IACnB,aAAe;AAAA,IACf,QAAU;AAAA,IACV,eAAiB;AAAA,IACjB,YAAc,EAAE,OAAO,kBAAkB,SAAS,eAAe;AAAA,IACjE,SAAW,EAAE,OAAO,kBAAkB,SAAS,eAAe;AAAA,IAC9D,sBAAwB;AAAA,IACxB,gBAAkB;AAAA,IAClB,OAAS;AAAA,IACT,wBAA0B;AAAA,IAC1B,OAAS,EAAE,OAAO,aAAa,SAAS,MAAM;AAAA,IAC9C,UAAY;AAAA,IACZ,YAAc,EAAE,OAAO,kBAAkB,SAAS,MAAM;AAAA,IACxD,eAAiB;AAAA,IACjB,WAAa,EAAE,OAAO,iBAAiB,SAAS,MAAM;AAAA,IACtD,iBAAmB;AAAA,IACnB,cAAgB;AAAA,IAChB,cAAgB;AAAA,IAChB,kBAAoB,EAAE,OAAO,wBAAwB,SAAS,MAAM;AAAA,IACpE,SAAW,EAAE,OAAO,eAAe,SAAS,eAAe;AAAA,IAC3D,MAAQ;AAAA,IACR,WAAa;AAAA,IACb,oBAAsB;AAAA,IACtB,gBAAkB;AAAA,EACpB;AACF;;;ACjDA;AAAA,EACE,YAAY;AAAA,IACV;AAAA,MACE,YAAY;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,MACE,uBAAyB;AAAA,MACzB,oBAAsB;AAAA,MACtB,uBAAyB;AAAA,MACzB,6BAA+B;AAAA,MAC/B,6BAA+B;AAAA,MAC/B,mCAAqC;AAAA,MACrC,mCAAqC;AAAA,MACrC,sBAAwB;AAAA,MACxB,4BAA8B;AAAA,MAC9B,mBAAqB;AAAA,MACrB,oBAAsB;AAAA,MACtB,sBAAwB;AAAA,MACxB,cAAgB;AAAA,MAChB,oBAAsB;AAAA,MACtB,kBAAoB;AAAA,MACpB,wBAA0B;AAAA,MAC1B,mBAAqB;AAAA,MACrB,eAAiB;AAAA,MACjB,oBAAsB;AAAA,MACtB,iBAAmB;AAAA,MACnB,kBAAoB;AAAA,MACpB,2BAA6B;AAAA,MAE7B,eAAiB;AAAA,MACjB,iBAAmB,EAAE,OAAO,uBAAuB,SAAS,OAAO,cAAc,OAAO;AAAA,MACxF,gBAAkB,EAAE,OAAO,4BAA4B,SAAS,OAAO,cAAc,OAAO;AAAA,MAC5F,YAAc,EAAE,OAAO,kBAAkB,SAAS,MAAM;AAAA,MACxD,kBAAoB;AAAA,MACpB,iBAAmB,EAAE,OAAO,uBAAuB,SAAS,OAAO,cAAc,QAAQ;AAAA,MACzF,sBAAwB,EAAE,OAAO,kCAAkC,SAAS,OAAO,cAAc,OAAO;AAAA,MACxG,sBAAwB,EAAE,OAAO,kCAAkC,SAAS,OAAO,cAAc,OAAO;AAAA,MACxG,QAAU,EAAE,OAAO,cAAc,SAAS,OAAO,cAAc,OAAO;AAAA,MACtE,WAAa;AAAA,MACb,YAAc;AAAA,MACd,YAAc,EAAE,OAAO,kBAAkB,SAAS,MAAM;AAAA,MACxD,WAAa,EAAE,OAAO,iBAAiB,SAAS,MAAM;AAAA,MACtD,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,cAAc;AAAA,MAChF,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,cAAc;AAAA,MAChF,kBAAoB,EAAE,OAAO,wBAAwB,SAAS,MAAM;AAAA,MACpE,SAAW,EAAE,OAAO,eAAe,SAAS,MAAM;AAAA,MAClD,KAAO;AAAA,MACP,cAAgB,EAAE,OAAO,0BAA0B,SAAS,OAAO,cAAc,OAAO;AAAA,MACxF,WAAa,EAAE,OAAO,gBAAgB;AAAA,MACtC,kBAAoB,EAAE,OAAO,wBAAwB,SAAS,MAAM;AAAA,MACpE,WAAa;AAAA,MACb,OAAS,EAAE,OAAO,aAAa,SAAS,OAAO,cAAc,SAAS;AAAA,MACtE,cAAgB,EAAE,OAAO,oBAAoB,SAAS,SAAS;AAAA,MAC/D,YAAc;AAAA,MACd,aAAe;AAAA,MACf,cAAgB;AAAA,MAChB,oBAAsB,EAAE,OAAO,0BAA0B,SAAS,MAAM;AAAA,MACxE,YAAc;AAAA,MACd,YAAc;AAAA,IAChB;AAAA,EACF;AACF;;;AC9DA;AAAA,EACE,YAAY;AAAA,IACV;AAAA,MACE,YAAY;AAAA,MACZ,IAAM;AAAA,MACN,MAAQ;AAAA,MACR,cAAc;AAAA,MACd,gBAAkB;AAAA,QAChB,OAAO;AAAA,MACT;AAAA,MACA,sBAAwB;AAAA,QACtB,OAAO;AAAA,QACP,YAAY;AAAA,UACV,YAAY;AAAA,UACZ,IAAM;AAAA,UACN,MAAQ;AAAA,UACR,cAAc;AAAA,UACd,WAAa;AAAA,UACb,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,QAAU;AAAA,UACV,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,KAAO;AAAA,UACP,OAAS;AAAA,UACT,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,cACV,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,IAAM;AAAA,cACN,MAAQ;AAAA,cACR,iBAAmB;AAAA,gBACjB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,gBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,cAAgB;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,YACF;AAAA,UACF;AAAA,UACA,oBAAsB;AAAA,YACpB,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,4BAA8B;AAAA,QAC5B,OAAO;AAAA,MACT;AAAA,MACA,sBAAwB;AAAA,QACtB,OAAO;AAAA,QACP,YAAY;AAAA,UACV,cAAc;AAAA,UACd,IAAM;AAAA,UACN,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,QAAU;AAAA,UACV,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,OAAS;AAAA,UACT,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,cACV,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,IAAM;AAAA,cACN,MAAQ;AAAA,cACR,iBAAmB;AAAA,gBACjB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,gBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,cAAgB;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,YACF;AAAA,UACF;AAAA,UACA,YAAc;AAAA,YACZ,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,oBAAsB;AAAA,YACpB,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,cAAgB;AAAA,QACd,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,iBAAmB;AAAA,QACjB,OAAO;AAAA,MACT;AAAA,MACA,cAAgB;AAAA,QACd,OAAO;AAAA,MACT;AAAA,MACA,qBAAuB;AAAA,QACrB,OAAO;AAAA,MACT;AAAA,MACA,iBAAmB;AAAA,QACjB,OAAO;AAAA,MACT;AAAA,MACA,mBAAqB;AAAA,QACnB,OAAO;AAAA,MACT;AAAA,MACA,mBAAqB;AAAA,QACnB,OAAO;AAAA,MACT;AAAA,MACA,qBAAuB;AAAA,QACrB,OAAO;AAAA,QACP,YAAY;AAAA,UACV,cAAc;AAAA,UACd,IAAM;AAAA,UACN,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,QAAU;AAAA,UACV,OAAS;AAAA,UACT,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,cACV,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,IAAM;AAAA,cACN,MAAQ;AAAA,cACR,iBAAmB;AAAA,gBACjB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,gBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,cAAgB;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,YACF;AAAA,UACF;AAAA,UACA,YAAc;AAAA,UACd,oBAAsB;AAAA,YACpB,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,0BAA4B;AAAA,QAC1B,OAAO;AAAA,QACP,YAAY;AAAA,UACV,cAAc;AAAA,UACd,IAAM;AAAA,UACN,MAAQ;AAAA,UACR,WAAa;AAAA,UACb,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,QAAU;AAAA,UACV,OAAS;AAAA,UACT,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,cACV,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,IAAM;AAAA,cACN,MAAQ;AAAA,cACR,iBAAmB;AAAA,gBACjB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,gBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,cAAgB;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,YACF;AAAA,UACF;AAAA,UACA,YAAc;AAAA,UACd,oBAAsB;AAAA,YACpB,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MAEA,2BAA6B;AAAA,MAC7B,sBAAwB;AAAA,QACtB,OAAO;AAAA,QACP,YAAY;AAAA,UACV,cAAc;AAAA,UAEd,IAAM;AAAA,UACN,MAAQ;AAAA,UAER,WAAa;AAAA,UACb,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,QAAU;AAAA,UACV,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,KAAO;AAAA,UACP,OAAS;AAAA,UACT,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,cACV,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,IAAM;AAAA,cACN,MAAQ;AAAA,cACR,iBAAmB;AAAA,gBACjB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,gBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,cAAgB;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,YACF;AAAA,UACF;AAAA,UACA,YAAc;AAAA,UACd,oBAAsB;AAAA,YACpB,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,kBAAoB;AAAA,MACpB,oBAAsB;AAAA,MACtB,yBAA2B;AAAA,MAC3B,yBAA2B;AAAA,MAC3B,kBAAoB;AAAA,MACpB,mBAAqB;AAAA,MACrB,2BAA6B;AAAA,MAC7B,iBAAmB;AAAA,MACnB,YAAc;AAAA,MACd,WAAa;AAAA,MACb,SAAW;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,SAAW;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,iBAAmB;AAAA,MACnB,aAAe;AAAA,MACf,QAAU;AAAA,MACV,eAAiB;AAAA,MACjB,YAAc;AAAA,QACZ,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,SAAW;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,sBAAwB;AAAA,MACxB,gBAAkB;AAAA,MAClB,OAAS;AAAA,MACT,wBAA0B;AAAA,MAC1B,OAAS;AAAA,MACT,UAAY;AAAA,MACZ,YAAc;AAAA,MACd,eAAiB;AAAA,MACjB,WAAa;AAAA,MACb,iBAAmB;AAAA,MACnB,cAAgB;AAAA,MAChB,cAAgB;AAAA,MAChB,kBAAoB;AAAA,MACpB,SAAW;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,MAAQ;AAAA,MACR,WAAa;AAAA,MACb,oBAAsB;AAAA,MACtB,gBAAkB;AAAA,MAClB,YAAc;AAAA,MAEd,uBAAyB;AAAA,MACzB,oBAAsB;AAAA,MACtB,uBAAyB;AAAA,MACzB,6BAA+B;AAAA,QAC7B,OAAO;AAAA,QACP,YAAY;AAAA,UACV,cAAc;AAAA,UAEd,IAAM;AAAA,UACN,MAAQ;AAAA,UAER,WAAa;AAAA,UACb,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,QAAU;AAAA,UACV,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,KAAO;AAAA,UACP,OAAS;AAAA,UACT,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,cACV,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,IAAM;AAAA,cACN,MAAQ;AAAA,cACR,iBAAmB;AAAA,gBACjB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,gBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,cAAgB;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,YACF;AAAA,UACF;AAAA,UACA,YAAc;AAAA,UACd,oBAAsB;AAAA,YACpB,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,6BAA+B;AAAA,QAC7B,OAAO;AAAA,QACP,YAAY;AAAA,UACV,cAAc;AAAA,UAEd,IAAM;AAAA,UACN,MAAQ;AAAA,UAER,WAAa;AAAA,UACb,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,QAAU;AAAA,UACV,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,KAAO;AAAA,UACP,OAAS;AAAA,UACT,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,cACV,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,IAAM;AAAA,cACN,MAAQ;AAAA,cACR,iBAAmB;AAAA,gBACjB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,gBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,cAAgB;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,YACF;AAAA,UACF;AAAA,UACA,YAAc;AAAA,UACd,oBAAsB;AAAA,YACpB,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,mCAAqC;AAAA,MACrC,mCAAqC;AAAA,MACrC,4BAA8B;AAAA,MAC9B,mBAAqB;AAAA,MACrB,oBAAsB;AAAA,MACtB,sBAAwB;AAAA,MACxB,cAAgB;AAAA,MAChB,oBAAsB;AAAA,MACtB,kBAAoB;AAAA,QAClB,OAAO;AAAA,QACP,YAAY;AAAA,UACV,cAAc;AAAA,UAEd,WAAa;AAAA,UACb,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,QAAU;AAAA,UACV,SAAW;AAAA,YACT,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,UACA,KAAO;AAAA,UACP,OAAS;AAAA,UACT,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,YAAY;AAAA,cACV,YAAY;AAAA,cACZ,cAAc;AAAA,cACd,IAAM;AAAA,cACN,MAAQ;AAAA,cACR,iBAAmB;AAAA,gBACjB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,gBAAkB;AAAA,gBAChB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,sBAAwB;AAAA,gBACtB,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,cACA,cAAgB;AAAA,gBACd,OAAO;AAAA,gBACP,SAAS;AAAA,gBACT,cAAc;AAAA,cAChB;AAAA,YACF;AAAA,UACF;AAAA,UACA,YAAc;AAAA,UACd,oBAAsB;AAAA,YACpB,OAAO;AAAA,YACP,SAAS;AAAA,UACX;AAAA,QACF;AAAA,MACF;AAAA,MACA,wBAA0B;AAAA,MAC1B,mBAAqB;AAAA,MACrB,eAAiB;AAAA,MACjB,oBAAsB;AAAA,MACtB,iBAAmB;AAAA,MACnB,kBAAoB;AAAA,MACpB,2BAA6B;AAAA,MAE7B,eAAiB;AAAA,MACjB,iBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,gBAAkB;AAAA,QAChB,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,YAAc;AAAA,QACZ,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,kBAAoB;AAAA,MACpB,iBAAmB;AAAA,QACjB,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,sBAAwB;AAAA,QACtB,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,sBAAwB;AAAA,QACtB,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,QAAU;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,WAAa;AAAA,MACb,YAAc;AAAA,MACd,YAAc;AAAA,QACZ,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,WAAa;AAAA,QACX,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,oBAAsB;AAAA,QACpB,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,oBAAsB;AAAA,QACpB,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,kBAAoB;AAAA,QAClB,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,SAAW;AAAA,QACT,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,KAAO;AAAA,MACP,cAAgB;AAAA,QACd,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,WAAa;AAAA,QACX,OAAO;AAAA,MACT;AAAA,MACA,kBAAoB;AAAA,QAClB,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,WAAa;AAAA,MACb,OAAS;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,cAAgB;AAAA,QACd,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,UACV,YAAY;AAAA,UACZ,cAAc;AAAA,UACd,IAAM;AAAA,UACN,MAAQ;AAAA,UACR,iBAAmB;AAAA,YACjB,OAAO;AAAA,YACP,SAAS;AAAA,YACT,cAAc;AAAA,UAChB;AAAA,UACA,gBAAkB;AAAA,YAChB,OAAO;AAAA,YACP,SAAS;AAAA,YACT,cAAc;AAAA,UAChB;AAAA,UACA,sBAAwB;AAAA,YACtB,OAAO;AAAA,YACP,SAAS;AAAA,YACT,cAAc;AAAA,UAChB;AAAA,UACA,sBAAwB;AAAA,YACtB,OAAO;AAAA,YACP,SAAS;AAAA,YACT,cAAc;AAAA,UAChB;AAAA,UACA,cAAgB;AAAA,YACd,OAAO;AAAA,YACP,SAAS;AAAA,YACT,cAAc;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAAA,MACA,aAAe;AAAA,MACf,cAAgB;AAAA,MAChB,oBAAsB;AAAA,QACpB,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,YAAc;AAAA,MACd,YAAc;AAAA,MACd,sBAAwB;AAAA,QACtB,OAAO;AAAA,QACP,SAAS;AAAA,QACT,cAAc;AAAA,MAChB;AAAA,MACA,4BAA8B;AAAA,QAC5B,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AACF;;;ACjtBA;AAAA,EACE,YAAY;AAAA,IACV,IAAM;AAAA,IACN,MAAQ;AAAA,IACR,cAAc;AAAA,IACd,2BAA6B;AAAA,MAC3B,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,YAAc;AAAA,UACZ,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,iBAAmB;AAAA,UACjB,OAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACzBA;AAAA,EACE,YAAY;AAAA,IACV,IAAM;AAAA,IACN,MAAQ;AAAA,IACR,cAAc;AAAA,IACd,OAAS;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,IAChB;AAAA,IACA,kCAAoC;AAAA,MAClC,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,YAAc;AAAA,UACZ,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,qBAAuB;AAAA,QACvB,cAAgB;AAAA,UACd,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,qCAAuC;AAAA,MACrC,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,WAAa;AAAA,QACb,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,QAAU;AAAA,QACV,SAAW;AAAA,UACT,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,KAAO;AAAA,QACP,OAAS;AAAA,QACT,cAAgB;AAAA,UACd,OAAO;AAAA,UACP,SAAS;AAAA,UACT,YAAY;AAAA,YACV,cAAc;AAAA,YACd,IAAM;AAAA,YACN,MAAQ;AAAA,YACR,iBAAmB;AAAA,cACjB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,gBAAkB;AAAA,cAChB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,YACA,cAAgB;AAAA,cACd,OAAO;AAAA,cACP,SAAS;AAAA,cACT,cAAc;AAAA,YAChB;AAAA,UACF;AAAA,QACF;AAAA,QACA,oBAAsB;AAAA,UACpB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACtFA;AAAA,EACE,YAAY;AAAA,IACV,cAAc;AAAA,IAEd,8BAAgC;AAAA,MAC9B,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,aAAe;AAAA,QACf,MAAQ;AAAA,MACV;AAAA,IACF;AAAA,IAEA,oBAAsB;AAAA,MACpB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,aAAe;AAAA,MACjB;AAAA,IACF;AAAA,IAEA,0BAA4B;AAAA,MAC1B,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,0BAA4B;AAAA,UAC1B,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,qBAAuB;AAAA,MACzB;AAAA,IACF;AAAA,EACF;AACF;;;AC7CA;AAAA,EACE,YAAY;AAAA,IACV,cAAc;AAAA,IAEd,0BAA4B;AAAA,MAC1B,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,aAAe;AAAA,QACf,MAAQ;AAAA,MACV;AAAA,IACF;AAAA,IAEA,gBAAkB;AAAA,MAChB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,eAAiB;AAAA,QACjB,aAAe;AAAA,MACjB;AAAA,IACF;AAAA,IAEA,qBAAuB;AAAA,MACrB,OAAO;AAAA,MACP,YAAY;AAAA,QACV,cAAc;AAAA,QAEd,IAAM;AAAA,QACN,MAAQ;AAAA,QAER,eAAiB;AAAA,QACjB,iBAAmB;AAAA,QACnB,sBAAwB;AAAA,UACtB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;AC/CA;AAAA,EACE,YAAY;AAAA,IACV,cAAc;AAAA,IACd,IAAM;AAAA,IACN,MAAQ;AAAA,IAER,aAAe;AAAA,MACb,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,IACA,iBAAmB;AAAA,MACjB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,IAChB;AAAA,IACA,gBAAkB;AAAA,MAChB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,IAChB;AAAA,IACA,sBAAwB;AAAA,MACtB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,IAChB;AAAA,IACA,sBAAwB;AAAA,MACtB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,IAChB;AAAA,IACA,YAAc;AAAA,MACZ,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,IACA,cAAgB;AAAA,MACd,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,IAChB;AAAA,IACA,SAAW;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,MACT,YAAY;AAAA,QACV,cAAc;AAAA,QACd,IAAM;AAAA,QACN,MAAQ;AAAA,QACR,iBAAmB;AAAA,UACjB,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAsB;AAAA,MACpB,OAAO;AAAA,MACP,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ACvCA,IAAMG,sBAAsBC;AAC5B,IAAMC,sBAAsBD;AAKrB,IAAME,oBAAoB,oBAAIC,IAAI;EACvC;IAAC;IAA0CJ;;EAC3C;IAAC;IAAwCE;;EACzC;IAAC;IAAoCA;;EACrC;IAAC;IAAoCG;;EACrC;IAAC;IAA2BC;;EAC5B;IAAC;IAA4BA;;EAC7B;IAAC;IAAgCA;;EACjC;IAAC;IAAgCC;;EACjC;IAAC;IAAgCC;;EACjC;IAAC;IAAyCC;;EAC1C;IAAC;IAAoDC;;EACrD;IAAC;IAAmDC;;EACpD;IAAC;IAAoDC;;EACrD;IAAC;IAAgDC;;EACjD;IAAC;IAAyCC;;EAC1C;IAAC;IAAmCC;;EACpC;IAAC;IAA4CC;;EAC7C;IAAC;IAAsCC;;EACvC;IAAC;IAA2CA;;EAC5C;IAAC;IAA+GC;;EAChH;IAAC;IAA+GC;;EAChH;IAAC;IAA8DC;;EAC/D;IAAC;IAAmDC;;EACpD;IAAC;IAAkEA;;CACpE;;;ACjDD,IAAAC,sBAAuE;AACvE,IAAAC,kBAAqF;AACrF,IAAAA,kBAaO;AACP,IAAAA,kBAAyC;AAKzC,IAAAC,gBAAkB;AASlB,IAAMC,aAAQC,cAAAA,SAAM,6CAAA;AAKb,IAAMC,2BAAN,MAAMA;EAnCb,OAmCaA;;;EACHC;EACAC;EAER,YAAYC,SAST;AACD,SAAKD,WAAWC,QAAQD;AACxB,SAAKD,qBAAqB,IAAIG,mBAAmB;MAC/CC,iBAAiB,IAAIC,gBAAgB;QAAEC,eAAeJ,QAAQK,eAAe;UAACC;;MAAmB,CAAA;MACjGC,eAAe,IAAIC,cAAc;QAC/BC,mBAAmBT,QAAQU,UAAU;UAAC,IAAIC,6BAAAA;UAAgC,IAAIC,4CAAAA;;MAChF,CAAA;MACAC,gBAAgBb,SAASa;IAC3B,CAAA;EAGF;;EAEAC,gBAAgBC,KAAoB;AAClC,WAAO,KAAKC,mBAAmBD,GAAAA;EACjC;;EAGAE,qBAA6B;AAC3B,WAAO;EACT;;EAGAC,uBAAuBC,MAA4C;AACjE,WAAOA,KAAKC,gBAAgB;EAC9B;;EAGAC,sBAAsBF,MAA2C;AAC/D,UAAM,EAAEG,SAAQ,IAAKH;AACrB,QAAI,OAAOG,aAAa,UAAU;AAChC,aAAO;IACT;AACA,UAAMC,YAAmCD,UAAWE,OAAOC,QAAQ;AACnE,eAAWC,SAAS,KAAK5B,mBAAmBS,cAAcoB,sBAAqB,GAAI;AACjF,UAAID,MAAME,sBAAqB,MAAOL,WAAW;AAC/C,eAAO;MACT,eAAWM,yBAAQH,MAAMI,6BAA4B,CAAA,EAAIC,SAASR,SAAAA,GAAY;AAC5E,eAAO;MACT;IACF;AAEA,WAAO;EACT;;EAGA,MAAMS,2BAA2Bb,MAAyCc,SAAmE;AAC3ItC,IAAAA,OAAM,qCAAA;AACN,UAAM,EAAEuC,YAAYC,OAAM,QAAKC,6CAA4BjB,IAAAA;AAE3D,QAAIkB;AACJ,QAAI;AACF1C,MAAAA,OAAM,oCAAoCwC,MAAAA,sBAA4B;AACtEE,mBAAa,MAAMJ,QAAQK,MAAMC,cAAc;QAAEC,KAAKL;MAAO,CAAA;AAC7DxC,MAAAA,OAAM,yBAAyBwC,MAAAA,6BAAmC;IACpE,SAASM,GAAG;AACV,YAAM,IAAIC,MAAM,iFAAiFD,CAAAA,EAAG;IACtG;AACA,QAAI;AACF,YAAM,EAAEE,YAAYC,mBAAkB,IAAK,MAAM,KAAKC,cAAcR,YAAYlB,KAAK2B,MAAM;AAC3F,YAAM,EAAEC,YAAYC,qBAAoB,IAAK,MAAM,KAAKC,qBAAqBhB,SAASI,YAAY;QAAES,QAAQ3B,KAAK2B;MAAO,CAAA;AACxH,aAAO,MAAM,KAAKhD,mBAAmBoD,4BACnC;QACEhB;QACAiB,WAAWd,WAAWG;QACtBzB,KAAK4B,cAAcI;QACnBC,sBAAsBA,wBAAyBJ;QAC/CQ,SAASjC,KAAKiC;QACdC,sBAAsBlC,KAAKkC;MAC7B,GACApB,OAAAA;IAEJ,SAASqB,OAAO;AACd3D,MAAAA,OAAM2D,KAAAA;AACN,aAAOC,QAAQC,OAAOF,KAAAA;IACxB;EACF;EAEA,MAAMT,cAAcR,YAAyBS,QAAiB;AAC5D,QAAIH;AACJ,QAAIC;AACJ,QAAIE,QAAQ;AACV,YAAMW,IAAI,MAAM,KAAK1D,UAAU2D,IAAI;QAAEC,OAAOb;MAAO,CAAA;AACnD,UAAIW,GAAGG,eAAe;AACpBjB,qBAAa;UACX,GAAGN,WAAWwB,KAAKC,KAAK,CAACL,OAAMA,GAAEM,QAAQjB,MAAAA;UACzCc,eAAeH,EAAEG;QACnB;AACAhB,6BAAqB,GAAGP,WAAWG,GAAG,IAAIG,WAAWoB,MAAMpB,WAAWoB,MAAMN,EAAEE,KAAK;MACrF;IACF;AACA,WAAO;MAAEhB;MAAYC;IAAmB;EAC1C;;EAGA,MAAMoB,6BAA6B7C,MAA2Cc,SAAqE;AACjJ,UAAM,EAAEgC,cAAcC,OAAM,QAAKC,wCAAuBhD,IAAAA;AAExD,QAAI8C,aAAaG,sBAAsB;AACrC,YAAMC,cAAcJ,aAAaG,qBAAqBE,IAAI,CAACC,SAAAA;AACzD,YAAI,OAAOA,SAAS,YAAYA,KAAK/C,OAAOgD,KAAK;AAC/C,iBAAOD,KAAK/C,MAAMgD;QACpB,OAAO;AACL,iBAAOD;QACT;MACF,CAAA;AACAN,mBAAaG,uBAAuBC;IACtC;AAGA,WAAOJ,aAAaQ;AACpB,WAAOR,aAAaS;AAEpB,QAAIrC;AACJ,QAAI;AACFA,mBAAa,MAAMJ,QAAQK,MAAMC,cAAc;QAAEC,KAAK0B;MAAO,CAAA;IAC/D,SAASzB,GAAG;AACV,YAAM,IAAIC,MAAM,iDAAiDwB,MAAAA,sCAA4C;IAC/G;AACA,QAAI;AACF,YAAM,EAAEvB,YAAYC,mBAAkB,IAAK,MAAM,KAAKC,cAAcR,YAAYlB,KAAK2B,MAAM;AAC3F,YAAM,EAAEC,YAAYC,qBAAoB,IAAK,MAAM,KAAKC,qBAAqBhB,SAASI,YAAY;QAAES,QAAQ3B,KAAK2B;MAAO,CAAA;AAExH,aAAO,MAAM,KAAKhD,mBAAmB6E,6BACnCV,cACA5B,WAAWG,KACXG,cAAcI,YACdC,uBAAuBA,uBAAwBJ,oBAC/CzB,KAAKyD,WACLzD,KAAK0D,QACL1D,KAAKiC,SACLnB,OAAAA;IAEJ,SAASqB,OAAO;AACd3D,MAAAA,OAAM2D,KAAAA;AACN,aAAOC,QAAQC,OAAOF,KAAAA;IACxB;EACF;;EAGA,MAAMwB,iBAAiB3D,MAAiCc,SAA4D;AAClH,UAAMC,aAAaf,KAAKe;AACxB,QAAI6C,cAAc5D,KAAK4D;AACvB,QAAI,OAAOA,gBAAgB,eAAe,CAAC5D,KAAK6D,cAAc7D,KAAK6D,WAAWC,+BAA+B,OAAO;AAClHF,wBAAcG,0CAAyB;QACrC,GAAG/D,KAAK6D;QACRG,4BAA4B;MAC9B,CAAA;IACF;AACA,WAAO,KAAKrF,mBAAmBgF,iBAC7B5C,YACAD,SACAd,KAAKiE,qBACLjE,KAAKiC,SACL2B,WAAAA;EAEJ;;EAGA,MAAMM,mBAAmBlE,MAAiCc,SAA4D;AACpH,UAAMgC,eAAe9C,KAAK8C;AAC1B,QAAIc,cAAc5D,KAAK4D;AACvB,QAAI,OAAOA,gBAAgB,cAAc5D,KAAK6D,cAAc,CAAC7D,KAAK6D,WAAWC,4BAA4B;AACvGF,wBAAcG,0CAAyB;QAAE,GAAG/D,KAAK6D;MAAW,CAAA;IAC9D;AACA,WAAO,KAAKlF,mBAAmBuF,mBAC7BpB,cACA9C,KAAKyD,WACLzD,KAAK0D,QACL5C,SACAd,KAAKiE,qBACLjE,KAAKmE,qBACLP,WAAAA;EAEJ;EAEA,MAAc9B,qBACZhB,SACAI,YACAkD,MAI6D;AAC7D,UAAMzC,SAASyC,MAAMzC;AACrBnD,IAAAA,OAAM,iCAAiC0C,WAAWG,GAAG,WAAWM,MAAAA,KAAW;AAC3E,UAAM0C,cACJD,MAAMC,eACL,UAAMC,sCAAiBxD,OAAAA,EACrByD,QAAQrD,WAAWG,GAAG,EACtBmD,KAAK,CAACC,WAAWA,OAAOJ,eAAeK,MAAAA;AAC5C,UAAMC,eAAgC,UAAMC,0DAC1C;MAAE1D;MAAY2D,gBAAgB;MAAsBR;IAAY,GAChEvD,OAAAA;AAEF,UAAMgE,iBAAiB,KAAKnG,mBAAmBS,cAAc2F,0BAAyB;AACtF,QAAInD;AACJ,QAAID,QAAQ;AACVC,mBAAa+C,aAAahC,KAAK,CAACL,MAAMA,EAAEM,QAAQjB,MAAAA;IAClD;AACA,QAAIC,cAAc,CAACkD,eAAelE,SAASgB,WAAWoD,KAAKvD,mBAAmBnB,IAAI,GAAG;AACnF9B,MAAAA,OAAM,wHAAA;AACNoD,mBAAa8C;IACf;AACA,QAAI,CAAC9C,YAAY;AACf,UAAID,QAAQ;AACVnD,QAAAA,OAAM,uHAAA;MACR;AACAoD,mBAAa+C,aAAahC,KAAK,CAACL,MAAMwC,eAAeG,OAAO,CAACC,UAAUA,MAAMC,WAAW7C,EAAE0C,KAAKvD,mBAAmBnB,IAAI,CAAA,CAAA;IACxH;AAEA,QAAI,CAACsB,WAAY,OAAML,MAAM,oDAAoDL,WAAWG,GAAG,KAAK+D,KAAKC,UAAUhB,WAAAA,CAAAA,EAAc;AACjI,UAAMxC,uBAAuBD,WAAWoD,KAAKvD,mBAAmB6D;AAChE9G,IAAAA,OAAM,sBAAsB0C,WAAWG,GAAG,+BAA+BQ,oBAAAA,SAA6B;AACtG,WAAO;MAAED;MAAYC;IAAqB;EAC5C;;;;;;;EAQAhC,mBAAmByC,GAAkB;AAEnC,YAAQA,EAAEhC,MAAI;MACZ,KAAK;AACH,YAAI,CAACgC,EAAE0C,MAAMO,YAAY3E,SAAS,OAAA,EAAU,QAAO;AACnD;MACF,KAAK;AACH,gBAAI4E,2BAAUlD,EAAE0C,MAAMO,cAAc,CAAA,GAAI;UAAC;UAAY;SAAS,EAAEE,UAAU,EAAG,QAAO;AACpF;IACJ;AAGA,UAAMlG,SAAS,KAAKZ,mBAAmBS,cAAcoB,sBAAqB;AAC1E,WAAOjB,OACJ4D,IAAI,CAAC5C,UAA+BA,MAAMmF,oBAAmB,EAAG9E,SAAS0B,EAAEhC,IAAI,CAAA,EAC/EqF,KAAK,CAACC,oBAA6BA,eAAAA;EACxC;AACF;","names":["module","module","SphereonLdSignature","preSigningPresModification","presentation","sanitizedPresentation","verifier","length","SphereonEd25519Signature2018","SphereonLdSignature","suiteContext2018","constants","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getContext","getSuiteForSigning","key","issuerDid","verificationMethodId","context","controller","id","signer","sign","args","messageString","bytesToBase64","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","base64ToBytes","options","publicKeyBase58","toString","fromString","publicKeyHex","type","verificationKey","Ed25519VerificationKey2018","Ed25519Signature2018","preVerificationCredModification","credential","vcJson","JSON","stringify","indexOf","asArray","v1Idx","Array","isArray","v3Idx","push","getSuiteForVerification","preSigningCredModification","preDidResolutionModification","didUrl","didDoc","import_ssi_sdk","SphereonEd25519Signature2020","SphereonLdSignature","suiteContext2020","constants","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getContext","getSuiteForSigning","key","issuerDid","verificationMethodId","context","controller","id","signer","sign","args","messageString","bytesToBase64","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","base64ToBytes","options","publicKeyMultibase","hexToMultibase","publicKeyHex","type","value","verificationKey","Ed25519VerificationKey2020","Ed25519Signature2020","preVerificationCredModification","credential","getSuiteForVerification","preSigningCredModification","preDidResolutionModification","import_utils","EcdsaSecp256k1RecoveryMethod2020","EcdsaSecp256k1RecoverySignature2020","ldsEcdsa","SphereonEcdsaSecp256k1RecoverySignature2020","SphereonLdSignature","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getSuiteForSigning","key","did","verifiableMethodId","context","controller","signer","sign","args","header","alg","b64","crit","headerString","encodeJoseBlob","messageBuffer","concatArrays","fromString","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","suite","publicKeyHex","type","id","ensureSuiteContext","document","asArray","getContext","getSuiteForVerification","preVerificationCredModification","preSigningCredModification","credential","preDidResolutionModification","didUrl","didDoc","idx","indexOf","Array","isArray","toLowerCase","startsWith","verificationMethod","forEach","x","blockchainAccountId","ethereumAddress","substring","lastIndexOf","import_jsonld_signatures","vc","import_ssi_sdk","import_debug","debug","Debug","LdDocumentLoader","ldContextLoader","ldSuiteLoader","localResolution","uniresolverResolution","resolverResolution","options","documentLoader","getLoader","context","attemptToFetchContexts","verifiableData","sigpkg","extendContextLoader","url","trim","length","Error","startsWith","issuer","undefined","id","toLowerCase","resolutionResult","getAgentResolver","resolve","didDoc","didDocument","getAllSignatureSuites","forEach","x","preDidResolutionModification","publicKey","verificationMethod","origUrl","indexOf","component","agent","getDIDComponentById","didUrl","JSON","stringify","contexts","filter","getSupportedVerificationType","type","value","index","self","map","getContext","fragment","Array","isArray","contextUrl","documentUrl","document","has","contextDoc","get","response","fetch","redirect","status","json","_id","e","defaultDocumentLoader","import_jsonld_signatures","ProofPurpose","sigpkg","purposes","ControllerProofPurpose","AssertionProofPurpose","AuthenticationProofPurpose","MethodNames","events","purposes","sigpkg","ProofPurpose","AssertionProofPurpose","AuthenticationProofPurpose","debug","Debug","LdCredentialModule","ldSuiteLoader","ldDocumentLoader","options","LdDocumentLoader","issueLDVerifiableCredential","args","context","key","issuerDid","verificationMethodId","credential","purpose","kid","suite","getSignatureSuiteForKeyType","type","meta","verificationMethod","documentLoader","getLoader","attemptToFetchContexts","verifiableData","preSigningCredModification","signingSuite","getSuiteForSigning","contextHasPlugin","credentialStatus","statusListCredential","credentialStatusVC","agent","slAddStatusToCredential","credentialStatusOpts","verifiableCredential","jsigs","sign","compactProof","issue","signLDVerifiablePresentation","presentation","holderDid","challenge","domain","preSigningPresModification","signPresentation","verifyCredential","fetchRemoteContexts","checkStatus","verificationSuites","getAllVerificationSuites","getAllSignatureSuites","forEach","preVerificationCredModification","result","verified","emit","events","CREDENTIAL_VERIFIED","JSON","stringify","console","log","CREDENTIAL_VERIFY_FAILED","map","x","getSuiteForVerification","verifyPresentation","presentationPurpose","error","message","verify","presentationResult","PRESENTATION_VERIFIED","PRESENTATION_VERIFY_FAILED","import_utils","LdContextLoader","contexts","options","Array","from","contextsPaths","mapItem","map","isIterable","Object","entries","key","value","has","url","get","import_ssi_sdk","LdSuiteLoader","options","ldSignatureSuites","forEach","suite","keyType","getSupportedKeyType","verifierMapping","signatureMap","asArray","getSupportedVerificationType","verificationType","getSignatureSuiteForKeyType","verificationToSuites","suites","Object","values","Array","isArray","length","Error","entries","map","kt","record","getSupportedProofType","join","getAllSignatureSuites","Set","x","flat","getAllSignatureSuiteTypes","keys","contextCredentialV1","require","contextCredentialV2","LdDefaultContexts","Map","contextBBSV1","contextDidV1","contextSecurityV1","contextSecurityV2","contextSecurityV3","contextSuitesEd25519_2018","contextSuitesX25519","contextSuitesEd25519_2020","contextSuitesJws_2020","contextProfile","contextCitizenshipV1","contextVCRevocationList2020","contextVCStatusList2021","contextLdsEcdsaSecpRecovery2020_0","contextLdsEcdsaSecpRecovery2020_2","contextSuitesSecp","contextSuiteEip712","import_ssi_sdk_ext","import_ssi_sdk","import_debug","debug","Debug","CredentialProviderJsonld","ldCredentialModule","keyStore","options","LdCredentialModule","ldContextLoader","LdContextLoader","contextsPaths","contextMaps","LdDefaultContexts","ldSuiteLoader","LdSuiteLoader","ldSignatureSuites","suites","SphereonEd25519Signature2020","SphereonEcdsaSecp256k1RecoverySignature2020","documentLoader","matchKeyForType","key","matchKeyForLDSuite","getTypeProofFormat","canIssueCredentialType","args","proofFormat","canVerifyDocumentType","document","proofType","proof","type","suite","getAllSignatureSuites","getSupportedProofType","asArray","getSupportedVerificationType","includes","createVerifiableCredential","context","credential","issuer","preProcessCredentialPayload","identifier","agent","didManagerGet","did","e","Error","managedKey","verificationMethod","getSigningKey","keyRef","signingKey","verificationMethodId","findSigningKeyWithId","issueLDVerifiableCredential","issuerDid","purpose","credentialStatusOpts","error","Promise","reject","k","get","alias","privateKeyHex","keys","find","kid","createVerifiablePresentation","presentation","holder","preProcessPresentation","verifiableCredential","credentials","map","cred","jwt","issuanceDate","validFrom","signLDVerifiablePresentation","challenge","domain","verifyCredential","checkStatus","statusList","disableCheckStatusList2021","vcLibCheckStatusFunction","verifyStatusListCredential","fetchRemoteContexts","verifyPresentation","presentationPurpose","opts","didDocument","getAgentResolver","resolve","then","result","undefined","extendedKeys","mapIdentifierKeysToDocWithJwkSupport","vmRelationship","supportedTypes","getAllSignatureSuiteTypes","meta","filter","value","startsWith","JSON","stringify","id","algorithms","intersect","length","getSupportedKeyType","some","supportsThisKey"]}