ns-auth-sdk 1.14.0 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cjs-CSUAVztq.cjs → browser-index.cjs} +5476 -296
- package/dist/browser-index.cjs.map +1 -0
- package/dist/browser-index.d.cts +1998 -0
- package/dist/browser-index.d.cts.map +1 -0
- package/dist/browser-index.d.mts +1998 -0
- package/dist/browser-index.d.mts.map +1 -0
- package/dist/{cjs-sm5h7qxv.mjs → browser-index.mjs} +5169 -69
- package/dist/browser-index.mjs.map +1 -0
- package/dist/{group-coordination-BlFpBVpn.mjs → group-coordination-BV6PKlKp.mjs} +1 -1
- package/dist/{group-coordination-BlFpBVpn.mjs.map → group-coordination-BV6PKlKp.mjs.map} +1 -1
- package/dist/{group-coordination-ImuoJEoy.mjs → group-coordination-BytkmY9j.mjs} +1 -1
- package/dist/{group-coordination-LGIyipaX.cjs → group-coordination-DL39hJ3R.cjs} +1 -1
- package/dist/{group-coordination-LGIyipaX.cjs.map → group-coordination-DL39hJ3R.cjs.map} +1 -1
- package/dist/{group-coordination-Cf18OjZt.cjs → group-coordination-DLban6a7.cjs} +1 -1
- package/dist/index.cjs +8899 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.mjs +9072 -213
- package/dist/index.mjs.map +1 -1
- package/dist/{prf-handler-D3EqUNWe.cjs → prf-handler-BNd7gmXJ.cjs} +1 -1
- package/dist/{prf-handler-D3EqUNWe.cjs.map → prf-handler-BNd7gmXJ.cjs.map} +1 -1
- package/dist/prf-handler-CRMgzJG2.cjs +3 -0
- package/dist/{prf-handler-Dly_WZGn.mjs → prf-handler-DG99ZkS2.mjs} +1 -1
- package/dist/{prf-handler-Db8CsoIP.mjs → prf-handler-Dj2WTO9i.mjs} +1 -1
- package/dist/{prf-handler-Db8CsoIP.mjs.map → prf-handler-Dj2WTO9i.mjs.map} +1 -1
- package/dist/zkm.service-Bv88tVS5.mjs +3 -0
- package/dist/zkm.service-D2BZ_aqA.cjs +3 -0
- package/dist/{zkm.service-DfSPbuOl.cjs → zkm.service-DX06sSfB.cjs} +1 -1
- package/dist/{zkm.service-DfSPbuOl.cjs.map → zkm.service-DX06sSfB.cjs.map} +1 -1
- package/dist/{zkm.service-B24N_0FB.mjs → zkm.service-j0HlN7Oq.mjs} +1 -1
- package/dist/{zkm.service-B24N_0FB.mjs.map → zkm.service-j0HlN7Oq.mjs.map} +1 -1
- package/package.json +19 -6
- package/dist/_esm-C7FRLTj2.cjs +0 -9030
- package/dist/_esm-C7FRLTj2.cjs.map +0 -1
- package/dist/_esm-D_oMW5T5.mjs +0 -9028
- package/dist/_esm-D_oMW5T5.mjs.map +0 -1
- package/dist/base64-js-B8y7dH5k.mjs +0 -93
- package/dist/base64-js-B8y7dH5k.mjs.map +0 -1
- package/dist/base64-js-Tm-kCeud.cjs +0 -98
- package/dist/base64-js-Tm-kCeud.cjs.map +0 -1
- package/dist/ccip-157tdxqP.cjs +0 -7947
- package/dist/ccip-157tdxqP.cjs.map +0 -1
- package/dist/ccip-BEMMdVyd.cjs +0 -4
- package/dist/ccip-BSmCdJ3K.mjs +0 -3
- package/dist/ccip-okqXkslP.mjs +0 -6567
- package/dist/ccip-okqXkslP.mjs.map +0 -1
- package/dist/chains-CTeD2UcS.mjs +0 -33
- package/dist/chains-CTeD2UcS.mjs.map +0 -1
- package/dist/chains-Du-lv_5i.cjs +0 -33
- package/dist/chains-Du-lv_5i.cjs.map +0 -1
- package/dist/chunk-Bnu9O96Y.cjs +0 -60
- package/dist/chunk-CVYhg9ik.mjs +0 -45
- package/dist/cjs-CSUAVztq.cjs.map +0 -1
- package/dist/cjs-sm5h7qxv.mjs.map +0 -1
- package/dist/defineChain-7QG67hYU.cjs +0 -30
- package/dist/defineChain-7QG67hYU.cjs.map +0 -1
- package/dist/defineChain-DBem8ZQY.mjs +0 -24
- package/dist/defineChain-DBem8ZQY.mjs.map +0 -1
- package/dist/dist-BPmSxkxc.cjs +0 -10676
- package/dist/dist-BPmSxkxc.cjs.map +0 -1
- package/dist/dist-BSjH4t6s.cjs +0 -12932
- package/dist/dist-BSjH4t6s.cjs.map +0 -1
- package/dist/dist-C-KjTK4Q.cjs +0 -447
- package/dist/dist-C-KjTK4Q.cjs.map +0 -1
- package/dist/dist-C2h97xM-.mjs +0 -355
- package/dist/dist-C2h97xM-.mjs.map +0 -1
- package/dist/dist-CT7grDWb.mjs +0 -12920
- package/dist/dist-CT7grDWb.mjs.map +0 -1
- package/dist/dist-D7fRmK6G.mjs +0 -10632
- package/dist/dist-D7fRmK6G.mjs.map +0 -1
- package/dist/dist-DlmcyFmM.mjs +0 -16951
- package/dist/dist-DlmcyFmM.mjs.map +0 -1
- package/dist/dist-O0uZr5OF.cjs +0 -17122
- package/dist/dist-O0uZr5OF.cjs.map +0 -1
- package/dist/echo-BB-JgAYZ.cjs +0 -339
- package/dist/echo-BB-JgAYZ.cjs.map +0 -1
- package/dist/echo-Bwy4_Cvh.mjs +0 -316
- package/dist/echo-Bwy4_Cvh.mjs.map +0 -1
- package/dist/echo-D6X2IuNW.cjs +0 -9
- package/dist/echo-DvfG_heb.mjs +0 -8
- package/dist/esm-BcHKCX5i.mjs +0 -569
- package/dist/esm-BcHKCX5i.mjs.map +0 -1
- package/dist/esm-Bh_YwFIz.cjs +0 -599
- package/dist/esm-Bh_YwFIz.cjs.map +0 -1
- package/dist/esm-C0XO9TQm.cjs +0 -30449
- package/dist/esm-C0XO9TQm.cjs.map +0 -1
- package/dist/esm-vMUVj9k4.mjs +0 -30440
- package/dist/esm-vMUVj9k4.mjs.map +0 -1
- package/dist/keyset-CKMQXvsb.mjs +0 -172
- package/dist/keyset-CKMQXvsb.mjs.map +0 -1
- package/dist/keyset-Cxdgu110.cjs +0 -237
- package/dist/keyset-Cxdgu110.cjs.map +0 -1
- package/dist/keyset-DLxpGhdu.cjs +0 -6
- package/dist/keyset-IKjlhvqF.mjs +0 -4
- package/dist/node-3EUJ4ga9.cjs +0 -9
- package/dist/node-C2UpE11T.cjs +0 -444
- package/dist/node-C2UpE11T.cjs.map +0 -1
- package/dist/node-CHdpTQdN.mjs +0 -8679
- package/dist/node-CHdpTQdN.mjs.map +0 -1
- package/dist/node-DQt1CVGl.mjs +0 -6
- package/dist/node-Dy8ww1LG.cjs +0 -8680
- package/dist/node-Dy8ww1LG.cjs.map +0 -1
- package/dist/node-IX55IH6z.mjs +0 -397
- package/dist/node-IX55IH6z.mjs.map +0 -1
- package/dist/nostr-BTOpBN_5.cjs +0 -11
- package/dist/nostr-D4E52XRU.mjs +0 -224
- package/dist/nostr-D4E52XRU.mjs.map +0 -1
- package/dist/nostr-Hv2tsnuI.cjs +0 -272
- package/dist/nostr-Hv2tsnuI.cjs.map +0 -1
- package/dist/nostr-ZwJe_DlZ.mjs +0 -4
- package/dist/pako.esm-DTVnlCJh.cjs +0 -3856
- package/dist/pako.esm-DTVnlCJh.cjs.map +0 -1
- package/dist/pako.esm-ORhkEHM2.mjs +0 -3838
- package/dist/pako.esm-ORhkEHM2.mjs.map +0 -1
- package/dist/peer-B9g3OQ5D.cjs +0 -18
- package/dist/peer-CptDj7zu.mjs +0 -745
- package/dist/peer-CptDj7zu.mjs.map +0 -1
- package/dist/peer-CtqL0yiE.mjs +0 -9
- package/dist/peer-XrPL0O6z.cjs +0 -822
- package/dist/peer-XrPL0O6z.cjs.map +0 -1
- package/dist/ping-BXKREIdI.mjs +0 -7
- package/dist/ping-BtVhKocl.cjs +0 -379
- package/dist/ping-BtVhKocl.cjs.map +0 -1
- package/dist/ping-D5fpMhGC.cjs +0 -11
- package/dist/ping-DOD50kW_.mjs +0 -332
- package/dist/ping-DOD50kW_.mjs.map +0 -1
- package/dist/policy-8HcjulLD.cjs +0 -293
- package/dist/policy-8HcjulLD.cjs.map +0 -1
- package/dist/policy-BA6MEOBY.mjs +0 -5
- package/dist/policy-BFNdXvmM.cjs +0 -11
- package/dist/policy-D_nFHHjo.mjs +0 -228
- package/dist/policy-D_nFHHjo.mjs.map +0 -1
- package/dist/prf-handler-BNiyCQMt.cjs +0 -3
- package/dist/src-CVfTUJQl.mjs +0 -822
- package/dist/src-CVfTUJQl.mjs.map +0 -1
- package/dist/src-D5S86Xpf.cjs +0 -827
- package/dist/src-D5S86Xpf.cjs.map +0 -1
- package/dist/types-B-TLIS13.cjs +0 -212
- package/dist/types-B-TLIS13.cjs.map +0 -1
- package/dist/types-CTm_FHYD.mjs +0 -111
- package/dist/types-CTm_FHYD.mjs.map +0 -1
- package/dist/validation-1xwWVXqE.mjs +0 -3
- package/dist/validation-DnpurN79.cjs +0 -405
- package/dist/validation-DnpurN79.cjs.map +0 -1
- package/dist/validation-IsAUvsvy.mjs +0 -334
- package/dist/validation-IsAUvsvy.mjs.map +0 -1
- package/dist/validation-yCvZCqIs.cjs +0 -6
- package/dist/wrapper-C5NpyacC.cjs +0 -3552
- package/dist/wrapper-C5NpyacC.cjs.map +0 -1
- package/dist/wrapper-CHq_CV4J.mjs +0 -3552
- package/dist/wrapper-CHq_CV4J.mjs.map +0 -1
- package/dist/zkm.service-BrXyI4BS.mjs +0 -3
- package/dist/zkm.service-BvQ01wSH.cjs +0 -3
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"esm-C0XO9TQm.cjs","names":["c","err","a","b","p","a","b","c","_a","j","retBuf","retView","k","i","k","d","_a","_b","retView","c","p","b","v","j","a","b","asn1js","defaultConverter","converters.defaultConverter","converters.defaultConverter","v","err","asn1js","converters.defaultConverter","c","d","a","k","b","hex.encode","DirectoryString","AttributeValue","hex.encode","RelativeDistinguishedName","RDNSequence","Name","GeneralName","AuthorityInfoAccessSyntax","GeneralNames","CertificateIssuer","DisplayText","Qualifier","CertificatePolicies","CRLNumber","BaseCRLNumber","DistributionPointName","CRLDistributionPoints","FreshestCRL","CRLReason","ExtendedKeyUsage","InhibitAnyPolicy","InvalidityDate","IssueAlternativeName","GeneralSubtrees","PolicyMappings","SubjectAlternativeName","Attribute","SubjectDirectoryAttributes","Attribute","SubjectInfoAccessSyntax","Time","Extensions","x","y","x","l","j","a","F","permute","Mode","F","create","oid.id_ecdsaWithSHA1","oid.id_ecdsaWithSHA224","oid.id_ecdsaWithSHA256","oid.id_ecdsaWithSHA384","oid.id_ecdsaWithSHA512","FieldID","Curve","SpecifiedECDomain","ECParameters","oid.id_md2","oid.id_md5","sha1","oid.id_sha1","sha224","oid.id_sha224","sha256","oid.id_sha256","sha384","oid.id_sha384","sha512","oid.id_sha512","oid.id_sha512_224","oid.id_sha512_256","oid.id_mgf1","oid.id_pSpecified","oid.id_rsaEncryption","oid.id_md2WithRSAEncryption","oid.id_md5WithRSAEncryption","oid.id_sha1WithRSAEncryption","oid.id_sha512_224WithRSAEncryption","oid.id_sha512_256WithRSAEncryption","oid.id_sha384WithRSAEncryption","oid.id_sha512WithRSAEncryption","sha1","sha1","OtherPrimeInfos","SignerIdentifier","DigestAlgorithmIdentifier","SignatureAlgorithmIdentifier","KeyEncryptionAlgorithmIdentifier","ContentEncryptionAlgorithmIdentifier","MessageAuthenticationCodeAlgorithm","KeyDerivationAlgorithmIdentifier","SignerInfos","CounterSignature","SigningTime","Attribute","AttrSpec","AttCertIssuer","Attribute","Target","Targets","ProxyInfo","CertificateChoices","CertificateSet","EncapsulatedContent","EncryptedContent","KeyAgreeRecipientIdentifier","RecipientEncryptedKeys","OriginatorIdentifierOrKey","RecipientIdentifier","RecipientInfo","RecipientInfos","RevocationInfoChoice","RevocationInfoChoices","UnprotectedAttributes","DigestAlgorithmIdentifiers","T","c","ne","I","y","me","p256","p384","p521","a","d","l","u","m","g","h","N","A","B","J","sha1","sha224","sha256","sha384","sha512","brainpoolP256r1","brainpoolP384r1","brainpoolP512r1","P","x","Q","M","C","$","L","b","E","poseidon2HashAsync","U","K","Y","Na","xa","S","D","ce","R","se","k","W","ye","Ce","he","V","de","be","Ae","Ie","ze","Qe","qe","re","je","j","m","d","c","rt","b","a","x","y","m","i","j","lo","c","ye","be","q","f","a","b","x","B","p256","p384","p521","se","sha224","sha1","m","D","R","M","w","ge","E","l","Q","l","a","I","p256","p384","p521","sha224","sha1","y","c","_","d","poseidon2HashAsync","S","M","x","f","P","fe","k","$","q","Z","le","j","V","L","C","f","I","G","P","X","p","c","_","CERTIFICATE_REGISTRY_ID","withRetry","buildMerkleTreeFromCerts","CIRCUIT_REGISTRY_ID","calculateCircuitRoot","poseidon2HashAsync","ultraVkToFields","Binary","hexToCidv0","u","T","D","N","M","F","B","x","a","b","randomBytes","m","a","l","bytesToHex","b","hexToBytes","ai","n2","x","y","u","v","q","p","c","X1","t1","f","d","k","to","getSharedSecret","w","isEven","getSharedSecretNoble","deflate","inflate","c","m","DisclosedData","d","a","l","areDatesEqual","formatName","getMinAgeFromCommittedInputs","getMaxAgeFromCommittedInputs","getBirthdateMinDateTimestamp","SECONDS_BETWEEN_1900_AND_1970","getBirthdateMaxDateTimestamp","getMinDateFromCommittedInputs","getMaxDateFromCommittedInputs","getServiceScopeHash","getServiceScopeFromDisclosureProof","getScopeHash","getServiceSubScopeFromDisclosureProof","RegistryClient","getCurrentDateFromDisclosureProof","T","E","A","F","f","u","b","p","C","y","getProofData","getNumberOfPublicInputs","getCertificateRegistryRootFromOuterProof","getCircuitRegistryRootFromOuterProof","x","w","D","getCurrentDateFromOuterProof","I","S","getParamCommitmentsFromOuterProof","g","W","getScopeFromOuterProof","getSubscopeFromOuterProof","h","_","getAgeEVMParameterCommitment","getAgeParameterCommitment","k","P","getDateEVMParameterCommitment","ProofType","getDateParameterCommitment","getDiscloseEVMParameterCommitment","getDiscloseParameterCommitment","getCountryEVMParameterCommitment","getCountryParameterCommitment","L","getBindEVMParameterCommitment","formatBoundData","getBindParameterCommitment","SanctionsBuilder","getFacematchEvmParameterCommitment","getFacematchParameterCommitment","getNullifierFromOuterProof","getNullifierTypeFromOuterProof","getCommitmentFromDSCProof","getMerkleRootFromDSCProof","getCommitmentInFromIDDataProof","getCommitmentOutFromIDDataProof","getCommitmentInFromIntegrityProof","getCommitmentOutFromIntegrityProof","getCommitmentInFromDisclosureProof","getParameterCommitmentFromDisclosureProof","getNullifierFromDisclosureProof","getNullifierTypeFromDisclosureProof","Y","getCommittedInputCount","ProofTypeLength","rightPadArrayWithZeros","numberToBytesBE","Buffer","bt","M","gt","formatQueryResultDates","NullifierType"],"sources":["../node_modules/i18n-iso-countries/codes.json","../node_modules/i18n-iso-countries/supportedLocales.json","../node_modules/diacritics/index.js","../node_modules/i18n-iso-countries/index.js","../node_modules/i18n-iso-countries/entry-node.js","../node_modules/pvtsutils/build/index.js","../node_modules/pvutils/build/utils.js","../node_modules/asn1js/build/index.js","../node_modules/@peculiar/utils/build/esm/bytes/buffer-source.js","../node_modules/@peculiar/utils/build/esm/bytes/equal.js","../node_modules/@peculiar/asn1-schema/build/es2015/enums.js","../node_modules/@peculiar/asn1-schema/build/es2015/types/bit_string.js","../node_modules/@peculiar/asn1-schema/build/es2015/types/octet_string.js","../node_modules/@peculiar/asn1-schema/build/es2015/converters.js","../node_modules/@peculiar/asn1-schema/build/es2015/helper.js","../node_modules/@peculiar/asn1-schema/build/es2015/schema.js","../node_modules/@peculiar/asn1-schema/build/es2015/storage.js","../node_modules/@peculiar/asn1-schema/build/es2015/decorators.js","../node_modules/@peculiar/asn1-schema/build/es2015/errors/schema_validation.js","../node_modules/@peculiar/asn1-schema/build/es2015/parser.js","../node_modules/@peculiar/asn1-schema/build/es2015/serializer.js","../node_modules/@peculiar/asn1-schema/build/es2015/objects.js","../node_modules/@peculiar/asn1-schema/build/es2015/convert.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/@peculiar/utils/build/esm/encoding/hex.js","../node_modules/@peculiar/asn1-x509/build/es2015/ip_converter.js","../node_modules/@peculiar/asn1-x509/build/es2015/name.js","../node_modules/@peculiar/asn1-x509/build/es2015/general_name.js","../node_modules/@peculiar/asn1-x509/build/es2015/object_identifiers.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/authority_information_access.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/authority_key_identifier.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/basic_constraints.js","../node_modules/@peculiar/asn1-x509/build/es2015/general_names.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/certificate_issuer.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/certificate_policies.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_number.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_delta_indicator.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_distribution_points.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_freshest.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_issuing_distribution_point.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/crl_reason.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/extended_key_usage.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/inhibit_any_policy.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/invalidity_date.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/issuer_alternative_name.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/key_usage.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/name_constraints.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/policy_constraints.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/policy_mappings.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/subject_alternative_name.js","../node_modules/@peculiar/asn1-x509/build/es2015/attribute.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/subject_directory_attributes.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/subject_key_identifier.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/private_key_usage_period.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/entrust_version_info.js","../node_modules/@peculiar/asn1-x509/build/es2015/extensions/subject_info_access.js","../node_modules/@peculiar/asn1-x509/build/es2015/algorithm_identifier.js","../node_modules/@peculiar/asn1-x509/build/es2015/subject_public_key_info.js","../node_modules/@peculiar/asn1-x509/build/es2015/time.js","../node_modules/@peculiar/asn1-x509/build/es2015/validity.js","../node_modules/@peculiar/asn1-x509/build/es2015/extension.js","../node_modules/@peculiar/asn1-x509/build/es2015/types.js","../node_modules/@peculiar/asn1-x509/build/es2015/tbs_certificate.js","../node_modules/@peculiar/asn1-x509/build/es2015/certificate.js","../node_modules/@peculiar/asn1-x509/build/es2015/tbs_cert_list.js","../node_modules/@peculiar/asn1-x509/build/es2015/certificate_list.js","../node_modules/@zkpassport/poseidon2/dist/esm/core/field.js","../node_modules/@zkpassport/poseidon2/dist/esm/core/poseidon2.js","../node_modules/@zkpassport/poseidon2/dist/esm/core/poseidon2params.js","../node_modules/@zkpassport/poseidon2/dist/esm/bn254/constants.js","../node_modules/@zkpassport/poseidon2/dist/esm/bn254/instance.js","../node_modules/@zkpassport/poseidon2/dist/esm/bn254/hash.js","../node_modules/@zkpassport/poseidon2/dist/esm/bn254/hash-async.js","../node_modules/@zkpassport/poseidon2/dist/esm/bn254/index.js","../node_modules/@peculiar/asn1-ecc/build/es2015/object_identifiers.js","../node_modules/@peculiar/asn1-ecc/build/es2015/algorithms.js","../node_modules/@peculiar/asn1-ecc/build/es2015/rfc3279.js","../node_modules/@peculiar/asn1-ecc/build/es2015/ec_parameters.js","../node_modules/@peculiar/asn1-ecc/build/es2015/ec_private_key.js","../node_modules/@peculiar/asn1-ecc/build/es2015/ec_signature_value.js","../node_modules/@peculiar/asn1-rsa/build/es2015/object_identifiers.js","../node_modules/@peculiar/asn1-rsa/build/es2015/algorithms.js","../node_modules/@peculiar/asn1-rsa/build/es2015/parameters/rsaes_oaep.js","../node_modules/@peculiar/asn1-rsa/build/es2015/parameters/rsassa_pss.js","../node_modules/@peculiar/asn1-rsa/build/es2015/parameters/rsassa_pkcs1_v1_5.js","../node_modules/@peculiar/asn1-rsa/build/es2015/other_prime_info.js","../node_modules/@peculiar/asn1-rsa/build/es2015/rsa_private_key.js","../node_modules/@peculiar/asn1-rsa/build/es2015/rsa_public_key.js","../node_modules/@peculiar/asn1-cms/build/es2015/issuer_and_serial_number.js","../node_modules/@peculiar/asn1-cms/build/es2015/signer_identifier.js","../node_modules/@peculiar/asn1-cms/build/es2015/types.js","../node_modules/@peculiar/asn1-cms/build/es2015/attribute.js","../node_modules/@peculiar/asn1-cms/build/es2015/signer_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/attributes/counter_signature.js","../node_modules/@peculiar/asn1-cms/build/es2015/attributes/signing_time.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/aa_clear_attrs.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/attr_spec.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/aa_controls.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/issuer_serial.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/object_digest_info.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/v2_form.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/attr_cert_issuer.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/attr_cert_validity_period.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/holder.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/attribute_certificate_info.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/attribute_certificate.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/class_list.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/security_category.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/clearance.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/ietf_attr_syntax.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/object_identifiers.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/target.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/proxy_info.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/role_syntax.js","../node_modules/@peculiar/asn1-x509-attr/build/es2015/svce_auth_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/certificate_choices.js","../node_modules/@peculiar/asn1-cms/build/es2015/content_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/encapsulated_content_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/encrypted_content_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/other_key_attribute.js","../node_modules/@peculiar/asn1-cms/build/es2015/key_agree_recipient_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/key_trans_recipient_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/kek_recipient_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/password_recipient_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/recipient_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/recipient_infos.js","../node_modules/@peculiar/asn1-cms/build/es2015/revocation_info_choice.js","../node_modules/@peculiar/asn1-cms/build/es2015/originator_info.js","../node_modules/@peculiar/asn1-cms/build/es2015/enveloped_data.js","../node_modules/@peculiar/asn1-cms/build/es2015/signed_data.js","../node_modules/@zkpassport/utils/dist/esm/index.js","../node_modules/i18n-iso-countries/langs/en.json","../node_modules/ieee754/index.js","../node_modules/buffer/index.js","../node_modules/@zkpassport/utils/dist/esm/circuits/index.js","../node_modules/@zkpassport/utils/dist/esm/registry/index.js","../node_modules/@zkpassport/registry/dist/esm/index.js","../node_modules/@obsidion/bridge/dist/esm/chunk-3RG5ZIWI.js","../node_modules/@obsidion/bridge/dist/esm/chunk-R44HA7IS.js","../node_modules/@obsidion/bridge/dist/esm/chunk-JJR3XGA6.js","../node_modules/@obsidion/bridge/dist/esm/chunk-NCCC6TF4.js","../node_modules/@obsidion/bridge/dist/esm/chunk-JAX7ZIAG.js","../node_modules/@noble/secp256k1/index.js","../node_modules/@obsidion/bridge/dist/esm/chunk-TY3J7RCK.js","../node_modules/@obsidion/bridge/dist/esm/chunk-YUWWFTWM.js","../node_modules/@obsidion/bridge/dist/esm/chunk-STQR6A4U.js","../node_modules/@obsidion/bridge/dist/esm/chunk-HXQ2MEBI.js","../node_modules/@obsidion/bridge/dist/esm/chunk-V3JORCRH.js","../node_modules/@zkpassport/sdk/dist/esm/index.js"],"sourcesContent":["","","exports.remove = removeDiacritics;\n\nvar replacementList = [\n {\n base: ' ',\n chars: \"\\u00A0\",\n }, {\n base: '0',\n chars: \"\\u07C0\",\n }, {\n base: 'A',\n chars: \"\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\",\n }, {\n base: 'AA',\n chars: \"\\uA732\",\n }, {\n base: 'AE',\n chars: \"\\u00C6\\u01FC\\u01E2\",\n }, {\n base: 'AO',\n chars: \"\\uA734\",\n }, {\n base: 'AU',\n chars: \"\\uA736\",\n }, {\n base: 'AV',\n chars: \"\\uA738\\uA73A\",\n }, {\n base: 'AY',\n chars: \"\\uA73C\",\n }, {\n base: 'B',\n chars: \"\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0181\",\n }, {\n base: 'C',\n chars: \"\\u24b8\\uff23\\uA73E\\u1E08\\u0106\\u0043\\u0108\\u010A\\u010C\\u00C7\\u0187\\u023B\",\n }, {\n base: 'D',\n chars: \"\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018A\\u0189\\u1D05\\uA779\",\n }, {\n base: 'Dh',\n chars: \"\\u00D0\",\n }, {\n base: 'DZ',\n chars: \"\\u01F1\\u01C4\",\n }, {\n base: 'Dz',\n chars: \"\\u01F2\\u01C5\",\n }, {\n base: 'E',\n chars: \"\\u025B\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\\u1D07\",\n }, {\n base: 'F',\n chars: \"\\uA77C\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\",\n }, {\n base: 'G',\n chars: \"\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\\u0262\",\n }, {\n base: 'H',\n chars: \"\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\",\n }, {\n base: 'I',\n chars: \"\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\",\n }, {\n base: 'J',\n chars: \"\\u24BF\\uFF2A\\u0134\\u0248\\u0237\",\n }, {\n base: 'K',\n chars: \"\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\",\n }, {\n base: 'L',\n chars: \"\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\",\n }, {\n base: 'LJ',\n chars: \"\\u01C7\",\n }, {\n base: 'Lj',\n chars: \"\\u01C8\",\n }, {\n base: 'M',\n chars: \"\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\\u03FB\",\n }, {\n base: 'N',\n chars: \"\\uA7A4\\u0220\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u019D\\uA790\\u1D0E\",\n }, {\n base: 'NJ',\n chars: \"\\u01CA\",\n }, {\n base: 'Nj',\n chars: \"\\u01CB\",\n }, {\n base: 'O',\n chars: \"\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\",\n }, {\n base: 'OE',\n chars: \"\\u0152\",\n }, {\n base: 'OI',\n chars: \"\\u01A2\",\n }, {\n base: 'OO',\n chars: \"\\uA74E\",\n }, {\n base: 'OU',\n chars: \"\\u0222\",\n }, {\n base: 'P',\n chars: \"\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\",\n }, {\n base: 'Q',\n chars: \"\\u24C6\\uFF31\\uA756\\uA758\\u024A\",\n }, {\n base: 'R',\n chars: \"\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\",\n }, {\n base: 'S',\n chars: \"\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\",\n }, {\n base: 'T',\n chars: \"\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\",\n }, {\n base: 'Th',\n chars: \"\\u00DE\",\n }, {\n base: 'TZ',\n chars: \"\\uA728\",\n }, {\n base: 'U',\n chars: \"\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\",\n }, {\n base: 'V',\n chars: \"\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\",\n }, {\n base: 'VY',\n chars: \"\\uA760\",\n }, {\n base: 'W',\n chars: \"\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\",\n }, {\n base: 'X',\n chars: \"\\u24CD\\uFF38\\u1E8A\\u1E8C\",\n }, {\n base: 'Y',\n chars: \"\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\",\n }, {\n base: 'Z',\n chars: \"\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\",\n }, {\n base: 'a',\n chars: \"\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\\u0251\",\n }, {\n base: 'aa',\n chars: \"\\uA733\",\n }, {\n base: 'ae',\n chars: \"\\u00E6\\u01FD\\u01E3\",\n }, {\n base: 'ao',\n chars: \"\\uA735\",\n }, {\n base: 'au',\n chars: \"\\uA737\",\n }, {\n base: 'av',\n chars: \"\\uA739\\uA73B\",\n }, {\n base: 'ay',\n chars: \"\\uA73D\",\n }, {\n base: 'b',\n chars: \"\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\\u0182\",\n }, {\n base: 'c',\n chars: \"\\uFF43\\u24D2\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184\",\n }, {\n base: 'd',\n chars: \"\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\u018B\\u13E7\\u0501\\uA7AA\",\n }, {\n base: 'dh',\n chars: \"\\u00F0\",\n }, {\n base: 'dz',\n chars: \"\\u01F3\\u01C6\",\n }, {\n base: 'e',\n chars: \"\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u01DD\",\n }, {\n base: 'f',\n chars: \"\\u24D5\\uFF46\\u1E1F\\u0192\",\n }, {\n base: 'ff',\n chars: \"\\uFB00\",\n }, {\n base: 'fi',\n chars: \"\\uFB01\",\n }, {\n base: 'fl',\n chars: \"\\uFB02\",\n }, {\n base: 'ffi',\n chars: \"\\uFB03\",\n }, {\n base: 'ffl',\n chars: \"\\uFB04\",\n }, {\n base: 'g',\n chars: \"\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\uA77F\\u1D79\",\n }, {\n base: 'h',\n chars: \"\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\",\n }, {\n base: 'hv',\n chars: \"\\u0195\",\n }, {\n base: 'i',\n chars: \"\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\",\n }, {\n base: 'j',\n chars: \"\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\",\n }, {\n base: 'k',\n chars: \"\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\",\n }, {\n base: 'l',\n chars: \"\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\\u026D\",\n }, {\n base: 'lj',\n chars: \"\\u01C9\",\n }, {\n base: 'm',\n chars: \"\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\",\n }, {\n base: 'n',\n chars: \"\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\\u043B\\u0509\",\n }, {\n base: 'nj',\n chars: \"\\u01CC\",\n }, {\n base: 'o',\n chars: \"\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\uA74B\\uA74D\\u0275\\u0254\\u1D11\",\n }, {\n base: 'oe',\n chars: \"\\u0153\",\n }, {\n base: 'oi',\n chars: \"\\u01A3\",\n }, {\n base: 'oo',\n chars: \"\\uA74F\",\n }, {\n base: 'ou',\n chars: \"\\u0223\",\n }, {\n base: 'p',\n chars: \"\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\\u03C1\",\n }, {\n base: 'q',\n chars: \"\\u24E0\\uFF51\\u024B\\uA757\\uA759\",\n }, {\n base: 'r',\n chars: \"\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\",\n }, {\n base: 's',\n chars: \"\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\\u0282\",\n }, {\n base: 'ss',\n chars: \"\\xDF\",\n }, {\n base: 't',\n chars: \"\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\",\n }, {\n base: 'th',\n chars: \"\\u00FE\",\n }, {\n base: 'tz',\n chars: \"\\uA729\",\n }, {\n base: 'u',\n chars: \"\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\",\n }, {\n base: 'v',\n chars: \"\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\",\n }, {\n base: 'vy',\n chars: \"\\uA761\",\n }, {\n base: 'w',\n chars: \"\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\",\n }, {\n base: 'x',\n chars: \"\\u24E7\\uFF58\\u1E8B\\u1E8D\",\n }, {\n base: 'y',\n chars: \"\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\",\n }, {\n base: 'z',\n chars: \"\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\",\n }\n];\n\nvar diacriticsMap = {};\nfor (var i = 0; i < replacementList.length; i += 1) {\n var chars = replacementList[i].chars;\n for (var j = 0; j < chars.length; j += 1) {\n diacriticsMap[chars[j]] = replacementList[i].base;\n }\n}\n\nfunction removeDiacritics(str) {\n return str.replace(/[^\\u0000-\\u007e]/g, function(c) {\n return diacriticsMap[c] || c;\n });\n}\n\nexports.replacementList = replacementList;\nexports.diacriticsMap = diacriticsMap;\n","\"use strict\";\n\nconst codes = require(\"./codes.json\");\nconst supportedLocales = require(\"./supportedLocales.json\");\nconst removeDiacritics = require(\"diacritics\").remove;\nconst registeredLocales = {};\n\n/*\n * All codes map to ISO 3166-1 alpha-2\n */\nconst alpha2 = {},\n alpha3 = {},\n numeric = {},\n invertedNumeric = {};\n\ncodes.forEach(function (codeInformation) {\n const s = codeInformation;\n alpha2[s[0]] = s[1];\n alpha3[s[1]] = s[0];\n numeric[s[2]] = s[0];\n invertedNumeric[s[0]] = s[2];\n});\n\n/**\n * @private\n * @param {number} code\n */\nfunction formatNumericCode(code) {\n return String(\"000\" + (code ? code : \"\")).slice(-3);\n}\n\n/**\n * @private\n * Avoid using obj.hasOwnProperty directly as `hasOwnProperty` could be a\n * property in itself ({ hasOwnProperty: 1 }) and cause weird bugs\n * https://eslint.org/docs/rules/no-prototype-builtins\n */\nfunction hasOwnProperty(object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n}\n\n/**\n * @private\n * Pass localeList through a filter and return a newLocaleList obj\n * with the same structure of the old localeList.\n *\n * @param {LocalizedCountryNames} localeList Local List in raw\n * @param {Function} filter callback to set filter rule\n * @return {String | String[]} new filtered Local List\n */\nfunction localeFilter(localeList, filter) {\n return Object.keys(localeList).reduce(function (newLocaleList, alpha2) {\n const nameList = localeList[alpha2];\n newLocaleList[alpha2] = filter(nameList, alpha2);\n return newLocaleList;\n }, {});\n}\n\n/**\n * @private\n * Preserve for getName & getNames\n *\n * @param {GetNameOptions.select} type all | official | alias\n * @param countryNameList string array of country's\n * official name and alias\n * @return {String | String[]} of a country name\n */\nfunction filterNameBy(type, countryNameList) {\n switch (type) {\n case \"official\":\n return Array.isArray(countryNameList)\n ? countryNameList[0]\n : countryNameList;\n\n case \"all\":\n return typeof countryNameList === \"string\"\n ? [countryNameList]\n : countryNameList;\n\n case \"alias\":\n return Array.isArray(countryNameList)\n ? countryNameList[1] || countryNameList[0]\n : countryNameList;\n\n default:\n throw new TypeError(\n \"LocaleNameType must be one of these: all, official, alias!\"\n );\n }\n}\n\n/**\n * Register countries in browsers' environment:\n * @param {object} localeData\n * @example countries.registerLocale(require(\"i18n-iso-countries/langs/en.json\"));\n * @return void\n */\nexports.registerLocale = function (localeData) {\n if (!localeData.locale) {\n throw new TypeError(\"Missing localeData.locale\");\n }\n\n if (!localeData.countries) {\n throw new TypeError(\"Missing localeData.countries\");\n }\n\n registeredLocales[localeData.locale] = localeData.countries;\n};\n\n/*\n * @param code Alpha-3 code\n * @return Alpha-2 code or undefined\n */\nfunction alpha3ToAlpha2(code) {\n return alpha3[code];\n}\nexports.alpha3ToAlpha2 = alpha3ToAlpha2;\n\n/*\n * @param code Alpha-2 code\n * @return Alpha-3 code or undefined\n */\nfunction alpha2ToAlpha3(code) {\n return alpha2[code];\n}\nexports.alpha2ToAlpha3 = alpha2ToAlpha3;\n\n/*\n * @param code Alpha-3 code\n * @return Numeric code or undefined\n */\nfunction alpha3ToNumeric(code) {\n return invertedNumeric[alpha3ToAlpha2(code)];\n}\nexports.alpha3ToNumeric = alpha3ToNumeric;\n\n/*\n * @param code Alpha-2 code\n * @return Numeric code or undefined\n */\nfunction alpha2ToNumeric(code) {\n return invertedNumeric[code];\n}\nexports.alpha2ToNumeric = alpha2ToNumeric;\n\n/*\n * @param code Numeric code\n * @return Alpha-3 code or undefined\n */\nfunction numericToAlpha3(code) {\n const padded = formatNumericCode(code);\n return alpha2ToAlpha3(numeric[padded]);\n}\nexports.numericToAlpha3 = numericToAlpha3;\n\n/*\n * @param code Numeric code\n * @return Alpha-2 code or undefined\n */\nfunction numericToAlpha2(code) {\n const padded = formatNumericCode(code);\n return numeric[padded];\n}\nexports.numericToAlpha2 = numericToAlpha2;\n\n/*\n * @param code ISO 3166-1 alpha-2, alpha-3 or numeric code\n * @return ISO 3166-1 alpha-3\n */\nfunction toAlpha3(code) {\n if (typeof code === \"string\") {\n if (/^[0-9]*$/.test(code)) {\n return numericToAlpha3(code);\n }\n if (code.length === 2) {\n return alpha2ToAlpha3(code.toUpperCase());\n }\n if (code.length === 3) {\n return code.toUpperCase();\n }\n }\n if (typeof code === \"number\") {\n return numericToAlpha3(code);\n }\n return undefined;\n}\nexports.toAlpha3 = toAlpha3;\n\n/*\n * @param code ISO 3166-1 alpha-2, alpha-3 or numeric code\n * @return ISO 3166-1 alpha-2\n */\nfunction toAlpha2(code) {\n if (typeof code === \"string\") {\n if (/^[0-9]*$/.test(code)) {\n return numericToAlpha2(code);\n }\n if (code.length === 2) {\n return code.toUpperCase();\n }\n if (code.length === 3) {\n return alpha3ToAlpha2(code.toUpperCase());\n }\n }\n if (typeof code === \"number\") {\n return numericToAlpha2(code);\n }\n return undefined;\n}\nexports.toAlpha2 = toAlpha2;\n\n/**\n * @param {string | number | Alpha2Code | Alpha3Code} code\n * @param {String} lang language for country name\n * @param {GetNameOptions} options\n * @return {String | String[] | undefined} name\n */\nexports.getName = function (code, lang, options = {}) {\n if (!(\"select\" in options)) {\n options.select = \"official\";\n }\n try {\n const codeMaps = registeredLocales[lang.toLowerCase()];\n const nameList = codeMaps[toAlpha2(code)];\n return filterNameBy(options.select, nameList);\n } catch (err) {\n return undefined;\n }\n};\n\n/**\n * @param {String} lang language for country names\n * @param {GetNameOptions} options getNames Options\n * @return {LocalizedCountryNames} country code\n * mapped to county name\n */\nexports.getNames = function (lang, options = {}) {\n if (!(\"select\" in options)) {\n options.select = \"official\";\n }\n const localeList = registeredLocales[lang.toLowerCase()];\n if (localeList === undefined) return {};\n return localeFilter(localeList, function (nameList) {\n return filterNameBy(options.select, nameList);\n });\n};\n\n/*\n * @param name name\n * @param lang language for country name\n * @return ISO 3166-1 alpha-2 or undefined\n */\nexports.getAlpha2Code = function (name, lang) {\n const normalizeString = (string) => string.toLowerCase();\n const areSimilar = (a, b) => normalizeString(a) === normalizeString(b);\n\n try {\n const codenames = registeredLocales[lang.toLowerCase()];\n for (const p in codenames) {\n if (!hasOwnProperty(codenames, p)) {\n continue;\n }\n if (typeof codenames[p] === \"string\") {\n if (areSimilar(codenames[p], name)) {\n return p;\n }\n }\n if (Array.isArray(codenames[p])) {\n for (const mappedName of codenames[p]) {\n if (areSimilar(mappedName, name)) {\n return p;\n }\n }\n }\n }\n return undefined;\n } catch (err) {\n return undefined;\n }\n};\n\n/*\n * @param name name\n * @param lang language for country name\n * @return ISO 3166-1 alpha-2 or undefined\n */\nexports.getSimpleAlpha2Code = function (name, lang) {\n const normalizeString = (string) => removeDiacritics(string.toLowerCase());\n const areSimilar = (a, b) => normalizeString(a) === normalizeString(b);\n\n try {\n const codenames = registeredLocales[lang.toLowerCase()];\n for (const p in codenames) {\n if (!hasOwnProperty(codenames, p)) {\n continue;\n }\n if (typeof codenames[p] === \"string\") {\n if (areSimilar(codenames[p], name)) {\n return p;\n }\n }\n if (Array.isArray(codenames[p])) {\n for (const mappedName of codenames[p]) {\n if (areSimilar(mappedName, name)) {\n return p;\n }\n }\n }\n }\n return undefined;\n } catch (err) {\n return undefined;\n }\n};\n\n/*\n * @return Object of alpha-2 codes mapped to alpha-3 codes\n */\nexports.getAlpha2Codes = function () {\n return alpha2;\n};\n\n/*\n * @param name name\n * @param lang language for country name\n * @return ISO 3166-1 alpha-3 or undefined\n */\nexports.getAlpha3Code = function (name, lang) {\n const alpha2 = exports.getAlpha2Code(name, lang);\n if (alpha2) {\n return exports.toAlpha3(alpha2);\n } else {\n return undefined;\n }\n};\n\n/*\n * @param name name\n * @param lang language for country name\n * @return ISO 3166-1 alpha-3 or undefined\n */\nexports.getSimpleAlpha3Code = function (name, lang) {\n const alpha2 = exports.getSimpleAlpha2Code(name, lang);\n if (alpha2) {\n return exports.toAlpha3(alpha2);\n } else {\n return undefined;\n }\n};\n\n/*\n * @return Object of alpha-3 codes mapped to alpha-2 codes\n */\nexports.getAlpha3Codes = function () {\n return alpha3;\n};\n\n/*\n * @return Object of numeric codes mapped to alpha-2 codes\n */\nexports.getNumericCodes = function () {\n return numeric;\n};\n\n/*\n * @return Array of registered languages\n */\nexports.langs = function () {\n return Object.keys(registeredLocales);\n};\n\n/*\n * @return Array of supported languages\n */\nexports.getSupportedLanguages = function () {\n return supportedLocales;\n};\n\n/*\n * @param code ISO 3166-1 alpha-2, alpha-3 or numeric code\n * @return Boolean\n */\nexports.isValid = function (code) {\n if (!code) {\n return false;\n }\n\n const coerced = code.toString().toUpperCase();\n return (\n hasOwnProperty(alpha3, coerced) ||\n hasOwnProperty(alpha2, coerced) ||\n hasOwnProperty(numeric, coerced)\n );\n};\n","var library = require(\"./index\");\n\nvar supportedLocales = library.getSupportedLanguages();\n\nfor (var i = 0; i < supportedLocales.length; i++) {\n var locale = require(\"./langs/\" + supportedLocales[i] + \".json\");\n library.registerLocale(locale);\n}\n\nmodule.exports = library;\n","/*!\n * MIT License\n * \n * Copyright (c) 2017-2024 Peculiar Ventures, LLC\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n * \n */\n\n'use strict';\n\nconst ARRAY_BUFFER_NAME = \"[object ArrayBuffer]\";\nclass BufferSourceConverter {\n static isArrayBuffer(data) {\n return Object.prototype.toString.call(data) === ARRAY_BUFFER_NAME;\n }\n static toArrayBuffer(data) {\n if (this.isArrayBuffer(data)) {\n return data;\n }\n if (data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return this.toUint8Array(data.buffer)\n .slice(data.byteOffset, data.byteOffset + data.byteLength)\n .buffer;\n }\n static toUint8Array(data) {\n return this.toView(data, Uint8Array);\n }\n static toView(data, type) {\n if (data.constructor === type) {\n return data;\n }\n if (this.isArrayBuffer(data)) {\n return new type(data);\n }\n if (this.isArrayBufferView(data)) {\n return new type(data.buffer, data.byteOffset, data.byteLength);\n }\n throw new TypeError(\"The provided value is not of type '(ArrayBuffer or ArrayBufferView)'\");\n }\n static isBufferSource(data) {\n return this.isArrayBufferView(data)\n || this.isArrayBuffer(data);\n }\n static isArrayBufferView(data) {\n return ArrayBuffer.isView(data)\n || (data && this.isArrayBuffer(data.buffer));\n }\n static isEqual(a, b) {\n const aView = BufferSourceConverter.toUint8Array(a);\n const bView = BufferSourceConverter.toUint8Array(b);\n if (aView.length !== bView.byteLength) {\n return false;\n }\n for (let i = 0; i < aView.length; i++) {\n if (aView[i] !== bView[i]) {\n return false;\n }\n }\n return true;\n }\n static concat(...args) {\n let buffers;\n if (Array.isArray(args[0]) && !(args[1] instanceof Function)) {\n buffers = args[0];\n }\n else if (Array.isArray(args[0]) && args[1] instanceof Function) {\n buffers = args[0];\n }\n else {\n if (args[args.length - 1] instanceof Function) {\n buffers = args.slice(0, args.length - 1);\n }\n else {\n buffers = args;\n }\n }\n let size = 0;\n for (const buffer of buffers) {\n size += buffer.byteLength;\n }\n const res = new Uint8Array(size);\n let offset = 0;\n for (const buffer of buffers) {\n const view = this.toUint8Array(buffer);\n res.set(view, offset);\n offset += view.length;\n }\n if (args[args.length - 1] instanceof Function) {\n return this.toView(res, args[args.length - 1]);\n }\n return res.buffer;\n }\n}\n\nconst STRING_TYPE = \"string\";\nconst HEX_REGEX = /^[0-9a-f\\s]+$/i;\nconst BASE64_REGEX = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\nconst BASE64URL_REGEX = /^[a-zA-Z0-9-_]+$/;\nclass Utf8Converter {\n static fromString(text) {\n const s = unescape(encodeURIComponent(text));\n const uintArray = new Uint8Array(s.length);\n for (let i = 0; i < s.length; i++) {\n uintArray[i] = s.charCodeAt(i);\n }\n return uintArray.buffer;\n }\n static toString(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let encodedString = \"\";\n for (let i = 0; i < buf.length; i++) {\n encodedString += String.fromCharCode(buf[i]);\n }\n const decodedString = decodeURIComponent(escape(encodedString));\n return decodedString;\n }\n}\nclass Utf16Converter {\n static toString(buffer, littleEndian = false) {\n const arrayBuffer = BufferSourceConverter.toArrayBuffer(buffer);\n const dataView = new DataView(arrayBuffer);\n let res = \"\";\n for (let i = 0; i < arrayBuffer.byteLength; i += 2) {\n const code = dataView.getUint16(i, littleEndian);\n res += String.fromCharCode(code);\n }\n return res;\n }\n static fromString(text, littleEndian = false) {\n const res = new ArrayBuffer(text.length * 2);\n const dataView = new DataView(res);\n for (let i = 0; i < text.length; i++) {\n dataView.setUint16(i * 2, text.charCodeAt(i), littleEndian);\n }\n return res;\n }\n}\nclass Convert {\n static isHex(data) {\n return typeof data === STRING_TYPE\n && HEX_REGEX.test(data);\n }\n static isBase64(data) {\n return typeof data === STRING_TYPE\n && BASE64_REGEX.test(data);\n }\n static isBase64Url(data) {\n return typeof data === STRING_TYPE\n && BASE64URL_REGEX.test(data);\n }\n static ToString(buffer, enc = \"utf8\") {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.ToUtf8String(buf);\n case \"binary\":\n return this.ToBinary(buf);\n case \"hex\":\n return this.ToHex(buf);\n case \"base64\":\n return this.ToBase64(buf);\n case \"base64url\":\n return this.ToBase64Url(buf);\n case \"utf16le\":\n return Utf16Converter.toString(buf, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buf);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static FromString(str, enc = \"utf8\") {\n if (!str) {\n return new ArrayBuffer(0);\n }\n switch (enc.toLowerCase()) {\n case \"utf8\":\n return this.FromUtf8String(str);\n case \"binary\":\n return this.FromBinary(str);\n case \"hex\":\n return this.FromHex(str);\n case \"base64\":\n return this.FromBase64(str);\n case \"base64url\":\n return this.FromBase64Url(str);\n case \"utf16le\":\n return Utf16Converter.fromString(str, true);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(str);\n default:\n throw new Error(`Unknown type of encoding '${enc}'`);\n }\n }\n static ToBase64(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n if (typeof btoa !== \"undefined\") {\n const binary = this.ToString(buf, \"binary\");\n return btoa(binary);\n }\n else {\n return Buffer.from(buf).toString(\"base64\");\n }\n }\n static FromBase64(base64) {\n const formatted = this.formatString(base64);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64(formatted)) {\n throw new TypeError(\"Argument 'base64Text' is not Base64 encoded\");\n }\n if (typeof atob !== \"undefined\") {\n return this.FromBinary(atob(formatted));\n }\n else {\n return new Uint8Array(Buffer.from(formatted, \"base64\")).buffer;\n }\n }\n static FromBase64Url(base64url) {\n const formatted = this.formatString(base64url);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isBase64Url(formatted)) {\n throw new TypeError(\"Argument 'base64url' is not Base64Url encoded\");\n }\n return this.FromBase64(this.Base64Padding(formatted.replace(/\\-/g, \"+\").replace(/\\_/g, \"/\")));\n }\n static ToBase64Url(data) {\n return this.ToBase64(data).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/\\=/g, \"\");\n }\n static FromUtf8String(text, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.FromBinary(text);\n case \"utf8\":\n return Utf8Converter.fromString(text);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.fromString(text);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.fromString(text, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static ToUtf8String(buffer, encoding = Convert.DEFAULT_UTF8_ENCODING) {\n switch (encoding) {\n case \"ascii\":\n return this.ToBinary(buffer);\n case \"utf8\":\n return Utf8Converter.toString(buffer);\n case \"utf16\":\n case \"utf16be\":\n return Utf16Converter.toString(buffer);\n case \"utf16le\":\n case \"usc2\":\n return Utf16Converter.toString(buffer, true);\n default:\n throw new Error(`Unknown type of encoding '${encoding}'`);\n }\n }\n static FromBinary(text) {\n const stringLength = text.length;\n const resultView = new Uint8Array(stringLength);\n for (let i = 0; i < stringLength; i++) {\n resultView[i] = text.charCodeAt(i);\n }\n return resultView.buffer;\n }\n static ToBinary(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let res = \"\";\n for (let i = 0; i < buf.length; i++) {\n res += String.fromCharCode(buf[i]);\n }\n return res;\n }\n static ToHex(buffer) {\n const buf = BufferSourceConverter.toUint8Array(buffer);\n let result = \"\";\n const len = buf.length;\n for (let i = 0; i < len; i++) {\n const byte = buf[i];\n if (byte < 16) {\n result += \"0\";\n }\n result += byte.toString(16);\n }\n return result;\n }\n static FromHex(hexString) {\n let formatted = this.formatString(hexString);\n if (!formatted) {\n return new ArrayBuffer(0);\n }\n if (!Convert.isHex(formatted)) {\n throw new TypeError(\"Argument 'hexString' is not HEX encoded\");\n }\n if (formatted.length % 2) {\n formatted = `0${formatted}`;\n }\n const res = new Uint8Array(formatted.length / 2);\n for (let i = 0; i < formatted.length; i = i + 2) {\n const c = formatted.slice(i, i + 2);\n res[i / 2] = parseInt(c, 16);\n }\n return res.buffer;\n }\n static ToUtf16String(buffer, littleEndian = false) {\n return Utf16Converter.toString(buffer, littleEndian);\n }\n static FromUtf16String(text, littleEndian = false) {\n return Utf16Converter.fromString(text, littleEndian);\n }\n static Base64Padding(base64) {\n const padCount = 4 - (base64.length % 4);\n if (padCount < 4) {\n for (let i = 0; i < padCount; i++) {\n base64 += \"=\";\n }\n }\n return base64;\n }\n static formatString(data) {\n return (data === null || data === void 0 ? void 0 : data.replace(/[\\n\\r\\t ]/g, \"\")) || \"\";\n }\n}\nConvert.DEFAULT_UTF8_ENCODING = \"utf8\";\n\nfunction assign(target, ...sources) {\n const res = arguments[0];\n for (let i = 1; i < arguments.length; i++) {\n const obj = arguments[i];\n for (const prop in obj) {\n res[prop] = obj[prop];\n }\n }\n return res;\n}\nfunction combine(...buf) {\n const totalByteLength = buf.map((item) => item.byteLength).reduce((prev, cur) => prev + cur);\n const res = new Uint8Array(totalByteLength);\n let currentPos = 0;\n buf.map((item) => new Uint8Array(item)).forEach((arr) => {\n for (const item2 of arr) {\n res[currentPos++] = item2;\n }\n });\n return res.buffer;\n}\nfunction isEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n\nexports.BufferSourceConverter = BufferSourceConverter;\nexports.Convert = Convert;\nexports.assign = assign;\nexports.combine = combine;\nexports.isEqual = isEqual;\n","/*!\n Copyright (c) Peculiar Ventures, LLC\n*/\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction getUTCDate(date) {\r\n return new Date(date.getTime() + (date.getTimezoneOffset() * 60000));\r\n}\r\nfunction getParametersValue(parameters, name, defaultValue) {\r\n var _a;\r\n if ((parameters instanceof Object) === false) {\r\n return defaultValue;\r\n }\r\n return (_a = parameters[name]) !== null && _a !== void 0 ? _a : defaultValue;\r\n}\r\nfunction bufferToHexCodes(inputBuffer, inputOffset = 0, inputLength = (inputBuffer.byteLength - inputOffset), insertSpace = false) {\r\n let result = \"\";\r\n for (const item of (new Uint8Array(inputBuffer, inputOffset, inputLength))) {\r\n const str = item.toString(16).toUpperCase();\r\n if (str.length === 1) {\r\n result += \"0\";\r\n }\r\n result += str;\r\n if (insertSpace) {\r\n result += \" \";\r\n }\r\n }\r\n return result.trim();\r\n}\r\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\r\n if (!(inputBuffer instanceof ArrayBuffer)) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer must be \\\"ArrayBuffer\\\"\";\r\n return false;\r\n }\r\n if (!inputBuffer.byteLength) {\r\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\r\n return false;\r\n }\r\n if (inputOffset < 0) {\r\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\r\n return false;\r\n }\r\n if (inputLength < 0) {\r\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\r\n return false;\r\n }\r\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\r\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction utilFromBase(inputBuffer, inputBase) {\r\n let result = 0;\r\n if (inputBuffer.length === 1) {\r\n return inputBuffer[0];\r\n }\r\n for (let i = (inputBuffer.length - 1); i >= 0; i--) {\r\n result += inputBuffer[(inputBuffer.length - 1) - i] * Math.pow(2, inputBase * i);\r\n }\r\n return result;\r\n}\r\nfunction utilToBase(value, base, reserved = (-1)) {\r\n const internalReserved = reserved;\r\n let internalValue = value;\r\n let result = 0;\r\n let biggest = Math.pow(2, base);\r\n for (let i = 1; i < 8; i++) {\r\n if (value < biggest) {\r\n let retBuf;\r\n if (internalReserved < 0) {\r\n retBuf = new ArrayBuffer(i);\r\n result = i;\r\n }\r\n else {\r\n if (internalReserved < i) {\r\n return (new ArrayBuffer(0));\r\n }\r\n retBuf = new ArrayBuffer(internalReserved);\r\n result = internalReserved;\r\n }\r\n const retView = new Uint8Array(retBuf);\r\n for (let j = (i - 1); j >= 0; j--) {\r\n const basis = Math.pow(2, j * base);\r\n retView[result - j - 1] = Math.floor(internalValue / basis);\r\n internalValue -= (retView[result - j - 1]) * basis;\r\n }\r\n return retBuf;\r\n }\r\n biggest *= Math.pow(2, base);\r\n }\r\n return new ArrayBuffer(0);\r\n}\r\nfunction utilConcatBuf(...buffers) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const buffer of buffers) {\r\n outputLength += buffer.byteLength;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const buffer of buffers) {\r\n retView.set(new Uint8Array(buffer), prevLength);\r\n prevLength += buffer.byteLength;\r\n }\r\n return retBuf;\r\n}\r\nfunction utilConcatView(...views) {\r\n let outputLength = 0;\r\n let prevLength = 0;\r\n for (const view of views) {\r\n outputLength += view.length;\r\n }\r\n const retBuf = new ArrayBuffer(outputLength);\r\n const retView = new Uint8Array(retBuf);\r\n for (const view of views) {\r\n retView.set(view, prevLength);\r\n prevLength += view.length;\r\n }\r\n return retView;\r\n}\r\nfunction utilDecodeTC() {\r\n const buf = new Uint8Array(this.valueHex);\r\n if (this.valueHex.byteLength >= 2) {\r\n const condition1 = (buf[0] === 0xFF) && (buf[1] & 0x80);\r\n const condition2 = (buf[0] === 0x00) && ((buf[1] & 0x80) === 0x00);\r\n if (condition1 || condition2) {\r\n this.warnings.push(\"Needlessly long format\");\r\n }\r\n }\r\n const bigIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const bigIntView = new Uint8Array(bigIntBuffer);\r\n for (let i = 0; i < this.valueHex.byteLength; i++) {\r\n bigIntView[i] = 0;\r\n }\r\n bigIntView[0] = (buf[0] & 0x80);\r\n const bigInt = utilFromBase(bigIntView, 8);\r\n const smallIntBuffer = new ArrayBuffer(this.valueHex.byteLength);\r\n const smallIntView = new Uint8Array(smallIntBuffer);\r\n for (let j = 0; j < this.valueHex.byteLength; j++) {\r\n smallIntView[j] = buf[j];\r\n }\r\n smallIntView[0] &= 0x7F;\r\n const smallInt = utilFromBase(smallIntView, 8);\r\n return (smallInt - bigInt);\r\n}\r\nfunction utilEncodeTC(value) {\r\n const modValue = (value < 0) ? (value * (-1)) : value;\r\n let bigInt = 128;\r\n for (let i = 1; i < 8; i++) {\r\n if (modValue <= bigInt) {\r\n if (value < 0) {\r\n const smallInt = bigInt - modValue;\r\n const retBuf = utilToBase(smallInt, 8, i);\r\n const retView = new Uint8Array(retBuf);\r\n retView[0] |= 0x80;\r\n return retBuf;\r\n }\r\n let retBuf = utilToBase(modValue, 8, i);\r\n let retView = new Uint8Array(retBuf);\r\n if (retView[0] & 0x80) {\r\n const tempBuf = retBuf.slice(0);\r\n const tempView = new Uint8Array(tempBuf);\r\n retBuf = new ArrayBuffer(retBuf.byteLength + 1);\r\n retView = new Uint8Array(retBuf);\r\n for (let k = 0; k < tempBuf.byteLength; k++) {\r\n retView[k + 1] = tempView[k];\r\n }\r\n retView[0] = 0x00;\r\n }\r\n return retBuf;\r\n }\r\n bigInt *= Math.pow(2, 8);\r\n }\r\n return (new ArrayBuffer(0));\r\n}\r\nfunction isEqualBuffer(inputBuffer1, inputBuffer2) {\r\n if (inputBuffer1.byteLength !== inputBuffer2.byteLength) {\r\n return false;\r\n }\r\n const view1 = new Uint8Array(inputBuffer1);\r\n const view2 = new Uint8Array(inputBuffer2);\r\n for (let i = 0; i < view1.length; i++) {\r\n if (view1[i] !== view2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction padNumber(inputNumber, fullLength) {\r\n const str = inputNumber.toString(10);\r\n if (fullLength < str.length) {\r\n return \"\";\r\n }\r\n const dif = fullLength - str.length;\r\n const padding = new Array(dif);\r\n for (let i = 0; i < dif; i++) {\r\n padding[i] = \"0\";\r\n }\r\n const paddingString = padding.join(\"\");\r\n return paddingString.concat(str);\r\n}\r\nconst base64Template = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nconst base64UrlTemplate = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=\";\r\nfunction toBase64(input, useUrlTemplate = false, skipPadding = false, skipLeadingZeros = false) {\r\n let i = 0;\r\n let flag1 = 0;\r\n let flag2 = 0;\r\n let output = \"\";\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n if (skipLeadingZeros) {\r\n let nonZeroPosition = 0;\r\n for (let i = 0; i < input.length; i++) {\r\n if (input.charCodeAt(i) !== 0) {\r\n nonZeroPosition = i;\r\n break;\r\n }\r\n }\r\n input = input.slice(nonZeroPosition);\r\n }\r\n while (i < input.length) {\r\n const chr1 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag1 = 1;\r\n }\r\n const chr2 = input.charCodeAt(i++);\r\n if (i >= input.length) {\r\n flag2 = 1;\r\n }\r\n const chr3 = input.charCodeAt(i++);\r\n const enc1 = chr1 >> 2;\r\n const enc2 = ((chr1 & 0x03) << 4) | (chr2 >> 4);\r\n let enc3 = ((chr2 & 0x0F) << 2) | (chr3 >> 6);\r\n let enc4 = chr3 & 0x3F;\r\n if (flag1 === 1) {\r\n enc3 = enc4 = 64;\r\n }\r\n else {\r\n if (flag2 === 1) {\r\n enc4 = 64;\r\n }\r\n }\r\n if (skipPadding) {\r\n if (enc3 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}`;\r\n }\r\n else {\r\n if (enc4 === 64) {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}`;\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n }\r\n else {\r\n output += `${template.charAt(enc1)}${template.charAt(enc2)}${template.charAt(enc3)}${template.charAt(enc4)}`;\r\n }\r\n }\r\n return output;\r\n}\r\nfunction fromBase64(input, useUrlTemplate = false, cutTailZeros = false) {\r\n const template = (useUrlTemplate) ? base64UrlTemplate : base64Template;\r\n function indexOf(toSearch) {\r\n for (let i = 0; i < 64; i++) {\r\n if (template.charAt(i) === toSearch)\r\n return i;\r\n }\r\n return 64;\r\n }\r\n function test(incoming) {\r\n return ((incoming === 64) ? 0x00 : incoming);\r\n }\r\n let i = 0;\r\n let output = \"\";\r\n while (i < input.length) {\r\n const enc1 = indexOf(input.charAt(i++));\r\n const enc2 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc3 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const enc4 = (i >= input.length) ? 0x00 : indexOf(input.charAt(i++));\r\n const chr1 = (test(enc1) << 2) | (test(enc2) >> 4);\r\n const chr2 = ((test(enc2) & 0x0F) << 4) | (test(enc3) >> 2);\r\n const chr3 = ((test(enc3) & 0x03) << 6) | test(enc4);\r\n output += String.fromCharCode(chr1);\r\n if (enc3 !== 64) {\r\n output += String.fromCharCode(chr2);\r\n }\r\n if (enc4 !== 64) {\r\n output += String.fromCharCode(chr3);\r\n }\r\n }\r\n if (cutTailZeros) {\r\n const outputLength = output.length;\r\n let nonZeroStart = (-1);\r\n for (let i = (outputLength - 1); i >= 0; i--) {\r\n if (output.charCodeAt(i) !== 0) {\r\n nonZeroStart = i;\r\n break;\r\n }\r\n }\r\n if (nonZeroStart !== (-1)) {\r\n output = output.slice(0, nonZeroStart + 1);\r\n }\r\n else {\r\n output = \"\";\r\n }\r\n }\r\n return output;\r\n}\r\nfunction arrayBufferToString(buffer) {\r\n let resultString = \"\";\r\n const view = new Uint8Array(buffer);\r\n for (const element of view) {\r\n resultString += String.fromCharCode(element);\r\n }\r\n return resultString;\r\n}\r\nfunction stringToArrayBuffer(str) {\r\n const stringLength = str.length;\r\n const resultBuffer = new ArrayBuffer(stringLength);\r\n const resultView = new Uint8Array(resultBuffer);\r\n for (let i = 0; i < stringLength; i++) {\r\n resultView[i] = str.charCodeAt(i);\r\n }\r\n return resultBuffer;\r\n}\r\nconst log2 = Math.log(2);\r\nfunction nearestPowerOf2(length) {\r\n const base = (Math.log(length) / log2);\r\n const floor = Math.floor(base);\r\n const round = Math.round(base);\r\n return ((floor === round) ? floor : round);\r\n}\r\nfunction clearProps(object, propsArray) {\r\n for (const prop of propsArray) {\r\n delete object[prop];\r\n }\r\n}\n\nexports.arrayBufferToString = arrayBufferToString;\nexports.bufferToHexCodes = bufferToHexCodes;\nexports.checkBufferParams = checkBufferParams;\nexports.clearProps = clearProps;\nexports.fromBase64 = fromBase64;\nexports.getParametersValue = getParametersValue;\nexports.getUTCDate = getUTCDate;\nexports.isEqualBuffer = isEqualBuffer;\nexports.nearestPowerOf2 = nearestPowerOf2;\nexports.padNumber = padNumber;\nexports.stringToArrayBuffer = stringToArrayBuffer;\nexports.toBase64 = toBase64;\nexports.utilConcatBuf = utilConcatBuf;\nexports.utilConcatView = utilConcatView;\nexports.utilDecodeTC = utilDecodeTC;\nexports.utilEncodeTC = utilEncodeTC;\nexports.utilFromBase = utilFromBase;\nexports.utilToBase = utilToBase;\n","/*!\n * Copyright (c) 2014, GMO GlobalSign\n * Copyright (c) 2015-2022, Peculiar Ventures\n * All rights reserved.\n * \n * Author 2014-2019, Yury Strozhevsky\n * \n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n * \n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n * \n * * Redistributions in binary form must reproduce the above copyright notice, this\n * list of conditions and the following disclaimer in the documentation and/or\n * other materials provided with the distribution.\n * \n * * Neither the name of the copyright holder nor the names of its\n * contributors may be used to endorse or promote products derived from\n * this software without specific prior written permission.\n * \n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n * \n */\n\n'use strict';\n\nvar pvtsutils = require('pvtsutils');\nvar pvutils = require('pvutils');\n\nfunction _interopNamespaceDefault(e) {\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n.default = e;\n return Object.freeze(n);\n}\n\nvar pvtsutils__namespace = /*#__PURE__*/_interopNamespaceDefault(pvtsutils);\nvar pvutils__namespace = /*#__PURE__*/_interopNamespaceDefault(pvutils);\n\nfunction assertBigInt() {\n if (typeof BigInt === \"undefined\") {\n throw new Error(\"BigInt is not defined. Your environment doesn't implement BigInt.\");\n }\n}\nfunction concat(buffers) {\n let outputLength = 0;\n let prevLength = 0;\n for (let i = 0; i < buffers.length; i++) {\n const buffer = buffers[i];\n outputLength += buffer.byteLength;\n }\n const retView = new Uint8Array(outputLength);\n for (let i = 0; i < buffers.length; i++) {\n const buffer = buffers[i];\n retView.set(new Uint8Array(buffer), prevLength);\n prevLength += buffer.byteLength;\n }\n return retView.buffer;\n}\nfunction checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength) {\n if (!(inputBuffer instanceof Uint8Array)) {\n baseBlock.error = \"Wrong parameter: inputBuffer must be 'Uint8Array'\";\n return false;\n }\n if (!inputBuffer.byteLength) {\n baseBlock.error = \"Wrong parameter: inputBuffer has zero length\";\n return false;\n }\n if (inputOffset < 0) {\n baseBlock.error = \"Wrong parameter: inputOffset less than zero\";\n return false;\n }\n if (inputLength < 0) {\n baseBlock.error = \"Wrong parameter: inputLength less than zero\";\n return false;\n }\n if ((inputBuffer.byteLength - inputOffset - inputLength) < 0) {\n baseBlock.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\n return false;\n }\n return true;\n}\n\nclass ViewWriter {\n constructor() {\n this.items = [];\n }\n write(buf) {\n this.items.push(buf);\n }\n final() {\n return concat(this.items);\n }\n}\n\nconst powers2 = [new Uint8Array([1])];\nconst digitsString = \"0123456789\";\nconst NAME = \"name\";\nconst VALUE_HEX_VIEW = \"valueHexView\";\nconst IS_HEX_ONLY = \"isHexOnly\";\nconst ID_BLOCK = \"idBlock\";\nconst TAG_CLASS = \"tagClass\";\nconst TAG_NUMBER = \"tagNumber\";\nconst IS_CONSTRUCTED = \"isConstructed\";\nconst FROM_BER = \"fromBER\";\nconst TO_BER = \"toBER\";\nconst LOCAL = \"local\";\nconst EMPTY_STRING = \"\";\nconst EMPTY_BUFFER = new ArrayBuffer(0);\nconst EMPTY_VIEW = new Uint8Array(0);\nconst END_OF_CONTENT_NAME = \"EndOfContent\";\nconst OCTET_STRING_NAME = \"OCTET STRING\";\nconst BIT_STRING_NAME = \"BIT STRING\";\n\nfunction HexBlock(BaseClass) {\n var _a;\n return _a = class Some extends BaseClass {\n get valueHex() {\n return this.valueHexView.slice().buffer;\n }\n set valueHex(value) {\n this.valueHexView = new Uint8Array(value);\n }\n constructor(...args) {\n var _b;\n super(...args);\n const params = args[0] || {};\n this.isHexOnly = (_b = params.isHexOnly) !== null && _b !== void 0 ? _b : false;\n this.valueHexView = params.valueHex ? pvtsutils__namespace.BufferSourceConverter.toUint8Array(params.valueHex) : EMPTY_VIEW;\n }\n fromBER(inputBuffer, inputOffset, inputLength, _context) {\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n const endLength = inputOffset + inputLength;\n this.valueHexView = view.subarray(inputOffset, endLength);\n if (!this.valueHexView.length) {\n this.warnings.push(\"Zero buffer length\");\n return inputOffset;\n }\n this.blockLength = inputLength;\n return endLength;\n }\n toBER(sizeOnly = false) {\n if (!this.isHexOnly) {\n this.error = \"Flag 'isHexOnly' is not set, abort\";\n return EMPTY_BUFFER;\n }\n if (sizeOnly) {\n return new ArrayBuffer(this.valueHexView.byteLength);\n }\n return (this.valueHexView.byteLength === this.valueHexView.buffer.byteLength)\n ? this.valueHexView.buffer\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isHexOnly: this.isHexOnly,\n valueHex: pvtsutils__namespace.Convert.ToHex(this.valueHexView),\n };\n }\n },\n _a.NAME = \"hexBlock\",\n _a;\n}\n\nclass LocalBaseBlock {\n static blockName() {\n return this.NAME;\n }\n get valueBeforeDecode() {\n return this.valueBeforeDecodeView.slice().buffer;\n }\n set valueBeforeDecode(value) {\n this.valueBeforeDecodeView = new Uint8Array(value);\n }\n constructor({ blockLength = 0, error = EMPTY_STRING, warnings = [], valueBeforeDecode = EMPTY_VIEW, } = {}) {\n this.blockLength = blockLength;\n this.error = error;\n this.warnings = warnings;\n this.valueBeforeDecodeView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(valueBeforeDecode);\n }\n toJSON() {\n return {\n blockName: this.constructor.NAME,\n blockLength: this.blockLength,\n error: this.error,\n warnings: this.warnings,\n valueBeforeDecode: pvtsutils__namespace.Convert.ToHex(this.valueBeforeDecodeView),\n };\n }\n}\nLocalBaseBlock.NAME = \"baseBlock\";\n\nclass ValueBlock extends LocalBaseBlock {\n fromBER(_inputBuffer, _inputOffset, _inputLength, _context) {\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\n }\n toBER(_sizeOnly, _writer) {\n throw TypeError(\"User need to make a specific function in a class which extends 'ValueBlock'\");\n }\n}\nValueBlock.NAME = \"valueBlock\";\n\nclass LocalIdentificationBlock extends HexBlock(LocalBaseBlock) {\n constructor({ idBlock = {} } = {}) {\n var _a, _b, _c, _d;\n super();\n if (idBlock) {\n this.isHexOnly = (_a = idBlock.isHexOnly) !== null && _a !== void 0 ? _a : false;\n this.valueHexView = idBlock.valueHex\n ? pvtsutils__namespace.BufferSourceConverter.toUint8Array(idBlock.valueHex)\n : EMPTY_VIEW;\n this.tagClass = (_b = idBlock.tagClass) !== null && _b !== void 0 ? _b : -1;\n this.tagNumber = (_c = idBlock.tagNumber) !== null && _c !== void 0 ? _c : -1;\n this.isConstructed = (_d = idBlock.isConstructed) !== null && _d !== void 0 ? _d : false;\n }\n else {\n this.tagClass = -1;\n this.tagNumber = -1;\n this.isConstructed = false;\n }\n }\n toBER(sizeOnly = false) {\n let firstOctet = 0;\n switch (this.tagClass) {\n case 1:\n firstOctet |= 0x00;\n break;\n case 2:\n firstOctet |= 0x40;\n break;\n case 3:\n firstOctet |= 0x80;\n break;\n case 4:\n firstOctet |= 0xC0;\n break;\n default:\n this.error = \"Unknown tag class\";\n return EMPTY_BUFFER;\n }\n if (this.isConstructed)\n firstOctet |= 0x20;\n if (this.tagNumber < 31 && !this.isHexOnly) {\n const retView = new Uint8Array(1);\n if (!sizeOnly) {\n let number = this.tagNumber;\n number &= 0x1F;\n firstOctet |= number;\n retView[0] = firstOctet;\n }\n return retView.buffer;\n }\n if (!this.isHexOnly) {\n const encodedBuf = pvutils__namespace.utilToBase(this.tagNumber, 7);\n const encodedView = new Uint8Array(encodedBuf);\n const size = encodedBuf.byteLength;\n const retView = new Uint8Array(size + 1);\n retView[0] = (firstOctet | 0x1F);\n if (!sizeOnly) {\n for (let i = 0; i < (size - 1); i++)\n retView[i + 1] = encodedView[i] | 0x80;\n retView[size] = encodedView[size - 1];\n }\n return retView.buffer;\n }\n const retView = new Uint8Array(this.valueHexView.byteLength + 1);\n retView[0] = (firstOctet | 0x1F);\n if (!sizeOnly) {\n const curView = this.valueHexView;\n for (let i = 0; i < (curView.length - 1); i++)\n retView[i + 1] = curView[i] | 0x80;\n retView[this.valueHexView.byteLength] = curView[curView.length - 1];\n }\n return retView.buffer;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const inputView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n if (intBuffer.length === 0) {\n this.error = \"Zero buffer length\";\n return -1;\n }\n const tagClassMask = intBuffer[0] & 0xC0;\n switch (tagClassMask) {\n case 0x00:\n this.tagClass = (1);\n break;\n case 0x40:\n this.tagClass = (2);\n break;\n case 0x80:\n this.tagClass = (3);\n break;\n case 0xC0:\n this.tagClass = (4);\n break;\n default:\n this.error = \"Unknown tag class\";\n return -1;\n }\n this.isConstructed = (intBuffer[0] & 0x20) === 0x20;\n this.isHexOnly = false;\n const tagNumberMask = intBuffer[0] & 0x1F;\n if (tagNumberMask !== 0x1F) {\n this.tagNumber = (tagNumberMask);\n this.blockLength = 1;\n }\n else {\n let count = 0;\n while (true) {\n const tagByteIndex = count + 1;\n if (tagByteIndex >= intBuffer.length) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n count++;\n if ((intBuffer[tagByteIndex] & 0x80) === 0x00)\n break;\n }\n this.blockLength = (count + 1);\n const intTagNumberBuffer = this.valueHexView = new Uint8Array(count);\n for (let i = 0; i < count; i++)\n intTagNumberBuffer[i] = intBuffer[i + 1] & 0x7F;\n if (this.blockLength <= 9)\n this.tagNumber = pvutils__namespace.utilFromBase(intTagNumberBuffer, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Tag too long, represented as hex-coded\");\n }\n }\n if (((this.tagClass === 1))\n && (this.isConstructed)) {\n switch (this.tagNumber) {\n case 1:\n case 2:\n case 5:\n case 6:\n case 9:\n case 13:\n case 14:\n case 23:\n case 24:\n case 31:\n case 32:\n case 33:\n case 34:\n this.error = \"Constructed encoding used for primitive type\";\n return -1;\n }\n }\n return (inputOffset + this.blockLength);\n }\n toJSON() {\n return {\n ...super.toJSON(),\n tagClass: this.tagClass,\n tagNumber: this.tagNumber,\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalIdentificationBlock.NAME = \"identificationBlock\";\n\nclass LocalLengthBlock extends LocalBaseBlock {\n constructor({ lenBlock = {} } = {}) {\n var _a, _b, _c;\n super();\n this.isIndefiniteForm = (_a = lenBlock.isIndefiniteForm) !== null && _a !== void 0 ? _a : false;\n this.longFormUsed = (_b = lenBlock.longFormUsed) !== null && _b !== void 0 ? _b : false;\n this.length = (_c = lenBlock.length) !== null && _c !== void 0 ? _c : 0;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const view = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = view.subarray(inputOffset, inputOffset + inputLength);\n if (intBuffer.length === 0) {\n this.error = \"Zero buffer length\";\n return -1;\n }\n if (intBuffer[0] === 0xFF) {\n this.error = \"Length block 0xFF is reserved by standard\";\n return -1;\n }\n this.isIndefiniteForm = intBuffer[0] === 0x80;\n if (this.isIndefiniteForm) {\n this.blockLength = 1;\n return (inputOffset + this.blockLength);\n }\n this.longFormUsed = !!(intBuffer[0] & 0x80);\n if (this.longFormUsed === false) {\n this.length = (intBuffer[0]);\n this.blockLength = 1;\n return (inputOffset + this.blockLength);\n }\n const count = intBuffer[0] & 0x7F;\n if (count > 8) {\n this.error = \"Too big integer\";\n return -1;\n }\n if ((count + 1) > intBuffer.length) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n const lenOffset = inputOffset + 1;\n const lengthBufferView = view.subarray(lenOffset, lenOffset + count);\n if (lengthBufferView[count - 1] === 0x00)\n this.warnings.push(\"Needlessly long encoded length\");\n this.length = pvutils__namespace.utilFromBase(lengthBufferView, 8);\n if (this.longFormUsed && (this.length <= 127))\n this.warnings.push(\"Unnecessary usage of long length form\");\n this.blockLength = count + 1;\n return (inputOffset + this.blockLength);\n }\n toBER(sizeOnly = false) {\n let retBuf;\n let retView;\n if (this.length > 127)\n this.longFormUsed = true;\n if (this.isIndefiniteForm) {\n retBuf = new ArrayBuffer(1);\n if (sizeOnly === false) {\n retView = new Uint8Array(retBuf);\n retView[0] = 0x80;\n }\n return retBuf;\n }\n if (this.longFormUsed) {\n const encodedBuf = pvutils__namespace.utilToBase(this.length, 8);\n if (encodedBuf.byteLength > 127) {\n this.error = \"Too big length\";\n return (EMPTY_BUFFER);\n }\n retBuf = new ArrayBuffer(encodedBuf.byteLength + 1);\n if (sizeOnly)\n return retBuf;\n const encodedView = new Uint8Array(encodedBuf);\n retView = new Uint8Array(retBuf);\n retView[0] = encodedBuf.byteLength | 0x80;\n for (let i = 0; i < encodedBuf.byteLength; i++)\n retView[i + 1] = encodedView[i];\n return retBuf;\n }\n retBuf = new ArrayBuffer(1);\n if (sizeOnly === false) {\n retView = new Uint8Array(retBuf);\n retView[0] = this.length;\n }\n return retBuf;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isIndefiniteForm: this.isIndefiniteForm,\n longFormUsed: this.longFormUsed,\n length: this.length,\n };\n }\n}\nLocalLengthBlock.NAME = \"lengthBlock\";\n\nconst typeStore = {};\n\nclass BaseBlock extends LocalBaseBlock {\n constructor({ name = EMPTY_STRING, optional = false, primitiveSchema, ...parameters } = {}, valueBlockType) {\n super(parameters);\n this.name = name;\n this.optional = optional;\n if (primitiveSchema) {\n this.primitiveSchema = primitiveSchema;\n }\n this.idBlock = new LocalIdentificationBlock(parameters);\n this.lenBlock = new LocalLengthBlock(parameters);\n this.valueBlock = valueBlockType ? new valueBlockType(parameters) : new ValueBlock(parameters);\n }\n fromBER(inputBuffer, inputOffset, inputLength, context) {\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm)\n ? inputLength\n : this.lenBlock.length, context);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n toBER(sizeOnly, writer) {\n const _writer = writer || new ViewWriter();\n if (!writer) {\n prepareIndefiniteForm(this);\n }\n const idBlockBuf = this.idBlock.toBER(sizeOnly);\n _writer.write(idBlockBuf);\n if (this.lenBlock.isIndefiniteForm) {\n _writer.write(new Uint8Array([0x80]).buffer);\n this.valueBlock.toBER(sizeOnly, _writer);\n _writer.write(new ArrayBuffer(2));\n }\n else {\n const valueBlockBuf = this.valueBlock.toBER(sizeOnly);\n this.lenBlock.length = valueBlockBuf.byteLength;\n const lenBlockBuf = this.lenBlock.toBER(sizeOnly);\n _writer.write(lenBlockBuf);\n _writer.write(valueBlockBuf);\n }\n if (!writer) {\n return _writer.final();\n }\n return EMPTY_BUFFER;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n idBlock: this.idBlock.toJSON(),\n lenBlock: this.lenBlock.toJSON(),\n valueBlock: this.valueBlock.toJSON(),\n name: this.name,\n optional: this.optional,\n };\n if (this.primitiveSchema)\n object.primitiveSchema = this.primitiveSchema.toJSON();\n return object;\n }\n toString(encoding = \"ascii\") {\n if (encoding === \"ascii\") {\n return this.onAsciiEncoding();\n }\n return pvtsutils__namespace.Convert.ToHex(this.toBER());\n }\n onAsciiEncoding() {\n const name = this.constructor.NAME;\n const value = pvtsutils__namespace.Convert.ToHex(this.valueBlock.valueBeforeDecodeView);\n return `${name} : ${value}`;\n }\n isEqual(other) {\n if (this === other) {\n return true;\n }\n if (!(other instanceof this.constructor)) {\n return false;\n }\n const thisRaw = this.toBER();\n const otherRaw = other.toBER();\n return pvutils__namespace.isEqualBuffer(thisRaw, otherRaw);\n }\n}\nBaseBlock.NAME = \"BaseBlock\";\nfunction prepareIndefiniteForm(baseBlock) {\n var _a;\n if (baseBlock instanceof typeStore.Constructed) {\n for (const value of baseBlock.valueBlock.value) {\n if (prepareIndefiniteForm(value)) {\n baseBlock.lenBlock.isIndefiniteForm = true;\n }\n }\n }\n return !!((_a = baseBlock.lenBlock) === null || _a === void 0 ? void 0 : _a.isIndefiniteForm);\n}\n\nclass BaseStringBlock extends BaseBlock {\n getValue() {\n return this.valueBlock.value;\n }\n setValue(value) {\n this.valueBlock.value = value;\n }\n constructor({ value = EMPTY_STRING, ...parameters } = {}, stringValueBlockType) {\n super(parameters, stringValueBlockType);\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm)\n ? inputLength\n : this.lenBlock.length);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n this.fromBuffer(this.valueBlock.valueHexView);\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : '${this.valueBlock.value}'`;\n }\n}\nBaseStringBlock.NAME = \"BaseStringBlock\";\n\nclass LocalPrimitiveValueBlock extends HexBlock(ValueBlock) {\n constructor({ isHexOnly = true, ...parameters } = {}) {\n super(parameters);\n this.isHexOnly = isHexOnly;\n }\n}\nLocalPrimitiveValueBlock.NAME = \"PrimitiveValueBlock\";\n\nvar _a$w;\nclass Primitive extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalPrimitiveValueBlock);\n this.idBlock.isConstructed = false;\n }\n}\n_a$w = Primitive;\n(() => {\n typeStore.Primitive = _a$w;\n})();\nPrimitive.NAME = \"PRIMITIVE\";\n\nconst DEFAULT_MAX_DEPTH = 100;\nconst DEFAULT_MAX_NODES = 10000;\nconst DEFAULT_MAX_CONTENT_LENGTH = 16 * 1024 * 1024;\nconst MAX_DEPTH_EXCEEDED_ERROR = \"Maximum ASN.1 nesting depth exceeded\";\nconst MAX_NODES_EXCEEDED_ERROR = \"Maximum ASN.1 node count exceeded\";\nconst MAX_CONTENT_LENGTH_EXCEEDED_ERROR = \"Maximum ASN.1 content length exceeded\";\nfunction createFromBerContext(options = {}) {\n var _a, _b, _c;\n return {\n depth: 0,\n maxDepth: (_a = options.maxDepth) !== null && _a !== void 0 ? _a : DEFAULT_MAX_DEPTH,\n nodesCount: 0,\n maxNodes: (_b = options.maxNodes) !== null && _b !== void 0 ? _b : DEFAULT_MAX_NODES,\n maxContentLength: (_c = options.maxContentLength) !== null && _c !== void 0 ? _c : DEFAULT_MAX_CONTENT_LENGTH,\n };\n}\nfunction createErrorResult(error) {\n const result = new BaseBlock({}, ValueBlock);\n result.error = error;\n return {\n offset: -1,\n result,\n };\n}\nfunction checkNodesLimit(context) {\n context.nodesCount += 1;\n if (context.nodesCount > context.maxNodes) {\n return MAX_NODES_EXCEEDED_ERROR;\n }\n return undefined;\n}\nfunction checkContentLengthLimit(inputLength, context) {\n if (inputLength > context.maxContentLength) {\n return MAX_CONTENT_LENGTH_EXCEEDED_ERROR;\n }\n return undefined;\n}\nfunction localFromBERWithChildContext(inputBuffer, inputOffset, inputLength, context) {\n const childDepth = context.depth + 1;\n if (childDepth > context.maxDepth) {\n return createErrorResult(MAX_DEPTH_EXCEEDED_ERROR);\n }\n context.depth = childDepth;\n try {\n return localFromBER(inputBuffer, inputOffset, inputLength, context);\n }\n finally {\n context.depth -= 1;\n }\n}\nfunction localChangeType(inputObject, newType) {\n if (inputObject instanceof newType) {\n return inputObject;\n }\n const newObject = new newType();\n newObject.idBlock = inputObject.idBlock;\n newObject.lenBlock = inputObject.lenBlock;\n newObject.warnings = inputObject.warnings;\n newObject.valueBeforeDecodeView = inputObject.valueBeforeDecodeView;\n return newObject;\n}\nfunction localFromBER(inputBuffer, inputOffset = 0, inputLength = inputBuffer.length, context = createFromBerContext()) {\n const incomingOffset = inputOffset;\n let returnObject = new BaseBlock({}, ValueBlock);\n const baseBlock = new LocalBaseBlock();\n if (!checkBufferParams(baseBlock, inputBuffer, inputOffset, inputLength)) {\n returnObject.error = baseBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n const intBuffer = inputBuffer.subarray(inputOffset, inputOffset + inputLength);\n if (!intBuffer.length) {\n returnObject.error = \"Zero buffer length\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n const nodesLimitError = checkNodesLimit(context);\n if (nodesLimitError) {\n returnObject.error = nodesLimitError;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n let resultOffset = returnObject.idBlock.fromBER(inputBuffer, inputOffset, inputLength);\n if (returnObject.idBlock.warnings.length) {\n returnObject.warnings.concat(returnObject.idBlock.warnings);\n }\n if (resultOffset === -1) {\n returnObject.error = returnObject.idBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n inputOffset = resultOffset;\n inputLength -= returnObject.idBlock.blockLength;\n resultOffset = returnObject.lenBlock.fromBER(inputBuffer, inputOffset, inputLength);\n if (returnObject.lenBlock.warnings.length) {\n returnObject.warnings.concat(returnObject.lenBlock.warnings);\n }\n if (resultOffset === -1) {\n returnObject.error = returnObject.lenBlock.error;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n inputOffset = resultOffset;\n inputLength -= returnObject.lenBlock.blockLength;\n const valueLength = returnObject.lenBlock.isIndefiniteForm ? inputLength : returnObject.lenBlock.length;\n const contentLengthError = checkContentLengthLimit(valueLength, context);\n if (contentLengthError) {\n returnObject.error = contentLengthError;\n return {\n offset: -1,\n result: returnObject,\n };\n }\n if (!returnObject.idBlock.isConstructed\n && returnObject.lenBlock.isIndefiniteForm) {\n returnObject.error = \"Indefinite length form used for primitive encoding form\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n let newASN1Type = BaseBlock;\n switch (returnObject.idBlock.tagClass) {\n case 1:\n if ((returnObject.idBlock.tagNumber >= 37)\n && (returnObject.idBlock.isHexOnly === false)) {\n returnObject.error = \"UNIVERSAL 37 and upper tags are reserved by ASN.1 standard\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n switch (returnObject.idBlock.tagNumber) {\n case 0:\n if ((returnObject.idBlock.isConstructed)\n && (returnObject.lenBlock.length > 0)) {\n returnObject.error = \"Type [UNIVERSAL 0] is reserved\";\n return {\n offset: -1,\n result: returnObject,\n };\n }\n newASN1Type = typeStore.EndOfContent;\n break;\n case 1:\n newASN1Type = typeStore.Boolean;\n break;\n case 2:\n newASN1Type = typeStore.Integer;\n break;\n case 3:\n newASN1Type = typeStore.BitString;\n break;\n case 4:\n newASN1Type = typeStore.OctetString;\n break;\n case 5:\n newASN1Type = typeStore.Null;\n break;\n case 6:\n newASN1Type = typeStore.ObjectIdentifier;\n break;\n case 10:\n newASN1Type = typeStore.Enumerated;\n break;\n case 12:\n newASN1Type = typeStore.Utf8String;\n break;\n case 13:\n newASN1Type = typeStore.RelativeObjectIdentifier;\n break;\n case 14:\n newASN1Type = typeStore.TIME;\n break;\n case 15:\n returnObject.error = \"[UNIVERSAL 15] is reserved by ASN.1 standard\";\n return {\n offset: -1,\n result: returnObject,\n };\n case 16:\n newASN1Type = typeStore.Sequence;\n break;\n case 17:\n newASN1Type = typeStore.Set;\n break;\n case 18:\n newASN1Type = typeStore.NumericString;\n break;\n case 19:\n newASN1Type = typeStore.PrintableString;\n break;\n case 20:\n newASN1Type = typeStore.TeletexString;\n break;\n case 21:\n newASN1Type = typeStore.VideotexString;\n break;\n case 22:\n newASN1Type = typeStore.IA5String;\n break;\n case 23:\n newASN1Type = typeStore.UTCTime;\n break;\n case 24:\n newASN1Type = typeStore.GeneralizedTime;\n break;\n case 25:\n newASN1Type = typeStore.GraphicString;\n break;\n case 26:\n newASN1Type = typeStore.VisibleString;\n break;\n case 27:\n newASN1Type = typeStore.GeneralString;\n break;\n case 28:\n newASN1Type = typeStore.UniversalString;\n break;\n case 29:\n newASN1Type = typeStore.CharacterString;\n break;\n case 30:\n newASN1Type = typeStore.BmpString;\n break;\n case 31:\n newASN1Type = typeStore.DATE;\n break;\n case 32:\n newASN1Type = typeStore.TimeOfDay;\n break;\n case 33:\n newASN1Type = typeStore.DateTime;\n break;\n case 34:\n newASN1Type = typeStore.Duration;\n break;\n default: {\n const newObject = returnObject.idBlock.isConstructed\n ? new typeStore.Constructed()\n : new typeStore.Primitive();\n newObject.idBlock = returnObject.idBlock;\n newObject.lenBlock = returnObject.lenBlock;\n newObject.warnings = returnObject.warnings;\n returnObject = newObject;\n }\n }\n break;\n case 2:\n case 3:\n case 4:\n default: {\n newASN1Type = returnObject.idBlock.isConstructed\n ? typeStore.Constructed\n : typeStore.Primitive;\n }\n }\n returnObject = localChangeType(returnObject, newASN1Type);\n resultOffset = returnObject.fromBER(inputBuffer, inputOffset, valueLength, context);\n returnObject.valueBeforeDecodeView = inputBuffer.subarray(incomingOffset, incomingOffset + returnObject.blockLength);\n return {\n offset: resultOffset,\n result: returnObject,\n };\n}\nfunction fromBER(inputBuffer, options = {}) {\n if (!inputBuffer.byteLength) {\n const result = new BaseBlock({}, ValueBlock);\n result.error = \"Input buffer has zero length\";\n return {\n offset: -1,\n result,\n };\n }\n return localFromBER(pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer).slice(), 0, inputBuffer.byteLength, createFromBerContext(options));\n}\n\nfunction checkLen(indefiniteLength, length) {\n if (indefiniteLength) {\n return 1;\n }\n return length;\n}\nclass LocalConstructedValueBlock extends ValueBlock {\n constructor({ value = [], isIndefiniteForm = false, ...parameters } = {}) {\n super(parameters);\n this.value = value;\n this.isIndefiniteForm = isIndefiniteForm;\n }\n fromBER(inputBuffer, inputOffset, inputLength, context) {\n const view = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n const parseContext = context !== null && context !== void 0 ? context : createFromBerContext();\n if (!checkBufferParams(this, view, inputOffset, inputLength)) {\n return -1;\n }\n this.valueBeforeDecodeView = view.subarray(inputOffset, inputOffset + inputLength);\n if (this.valueBeforeDecodeView.length === 0) {\n this.warnings.push(\"Zero buffer length\");\n return inputOffset;\n }\n let currentOffset = inputOffset;\n while (checkLen(this.isIndefiniteForm, inputLength) > 0) {\n const returnObject = localFromBERWithChildContext(view, currentOffset, inputLength, parseContext);\n if (returnObject.offset === -1) {\n this.error = returnObject.result.error;\n this.warnings.concat(returnObject.result.warnings);\n return -1;\n }\n currentOffset = returnObject.offset;\n this.blockLength += returnObject.result.blockLength;\n inputLength -= returnObject.result.blockLength;\n this.value.push(returnObject.result);\n if (this.isIndefiniteForm && returnObject.result.constructor.NAME === END_OF_CONTENT_NAME) {\n break;\n }\n }\n if (this.isIndefiniteForm) {\n if (this.value[this.value.length - 1].constructor.NAME === END_OF_CONTENT_NAME) {\n this.value.pop();\n }\n else {\n this.warnings.push(\"No EndOfContent block encoded\");\n }\n }\n return currentOffset;\n }\n toBER(sizeOnly, writer) {\n const _writer = writer || new ViewWriter();\n for (let i = 0; i < this.value.length; i++) {\n this.value[i].toBER(sizeOnly, _writer);\n }\n if (!writer) {\n return _writer.final();\n }\n return EMPTY_BUFFER;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n isIndefiniteForm: this.isIndefiniteForm,\n value: [],\n };\n for (const value of this.value) {\n object.value.push(value.toJSON());\n }\n return object;\n }\n}\nLocalConstructedValueBlock.NAME = \"ConstructedValueBlock\";\n\nvar _a$v;\nclass Constructed extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalConstructedValueBlock);\n this.idBlock.isConstructed = true;\n }\n fromBER(inputBuffer, inputOffset, inputLength, context) {\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n const resultOffset = this.valueBlock.fromBER(inputBuffer, inputOffset, (this.lenBlock.isIndefiniteForm) ? inputLength : this.lenBlock.length, context);\n if (resultOffset === -1) {\n this.error = this.valueBlock.error;\n return resultOffset;\n }\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n if (!this.valueBlock.error.length)\n this.blockLength += this.valueBlock.blockLength;\n return resultOffset;\n }\n onAsciiEncoding() {\n const values = [];\n for (const value of this.valueBlock.value) {\n values.push(value.toString(\"ascii\").split(\"\\n\").map((o) => ` ${o}`).join(\"\\n\"));\n }\n const blockName = this.idBlock.tagClass === 3\n ? `[${this.idBlock.tagNumber}]`\n : this.constructor.NAME;\n return values.length\n ? `${blockName} :\\n${values.join(\"\\n\")}`\n : `${blockName} :`;\n }\n}\n_a$v = Constructed;\n(() => {\n typeStore.Constructed = _a$v;\n})();\nConstructed.NAME = \"CONSTRUCTED\";\n\nclass LocalEndOfContentValueBlock extends ValueBlock {\n fromBER(inputBuffer, inputOffset, _inputLength) {\n return inputOffset;\n }\n toBER(_sizeOnly) {\n return EMPTY_BUFFER;\n }\n}\nLocalEndOfContentValueBlock.override = \"EndOfContentValueBlock\";\n\nvar _a$u;\nclass EndOfContent extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalEndOfContentValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 0;\n }\n}\n_a$u = EndOfContent;\n(() => {\n typeStore.EndOfContent = _a$u;\n})();\nEndOfContent.NAME = END_OF_CONTENT_NAME;\n\nvar _a$t;\nclass Null extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, ValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 5;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (this.lenBlock.length > 0)\n this.warnings.push(\"Non-zero length of value block for Null type\");\n if (!this.idBlock.error.length)\n this.blockLength += this.idBlock.blockLength;\n if (!this.lenBlock.error.length)\n this.blockLength += this.lenBlock.blockLength;\n this.blockLength += inputLength;\n if ((inputOffset + inputLength) > inputBuffer.byteLength) {\n this.error = \"End of input reached before message was fully decoded (inconsistent offset and length values)\";\n return -1;\n }\n return (inputOffset + inputLength);\n }\n toBER(sizeOnly, writer) {\n const retBuf = new ArrayBuffer(2);\n if (!sizeOnly) {\n const retView = new Uint8Array(retBuf);\n retView[0] = 0x05;\n retView[1] = 0x00;\n }\n if (writer) {\n writer.write(retBuf);\n }\n return retBuf;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME}`;\n }\n}\n_a$t = Null;\n(() => {\n typeStore.Null = _a$t;\n})();\nNull.NAME = \"NULL\";\n\nclass LocalBooleanValueBlock extends HexBlock(ValueBlock) {\n get value() {\n for (const octet of this.valueHexView) {\n if (octet > 0) {\n return true;\n }\n }\n return false;\n }\n set value(value) {\n this.valueHexView[0] = value ? 0xFF : 0x00;\n }\n constructor({ value, ...parameters } = {}) {\n super(parameters);\n if (parameters.valueHex) {\n this.valueHexView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(parameters.valueHex);\n }\n else {\n this.valueHexView = new Uint8Array(1);\n }\n if (value) {\n this.value = value;\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const inputView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n this.valueHexView = inputView.subarray(inputOffset, inputOffset + inputLength);\n if (inputLength > 1)\n this.warnings.push(\"Boolean value encoded in more then 1 octet\");\n this.isHexOnly = true;\n pvutils__namespace.utilDecodeTC.call(this);\n this.blockLength = inputLength;\n return (inputOffset + inputLength);\n }\n toBER() {\n return this.valueHexView.slice();\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.value,\n };\n }\n}\nLocalBooleanValueBlock.NAME = \"BooleanValueBlock\";\n\nvar _a$s;\nclass Boolean extends BaseBlock {\n getValue() {\n return this.valueBlock.value;\n }\n setValue(value) {\n this.valueBlock.value = value;\n }\n constructor(parameters = {}) {\n super(parameters, LocalBooleanValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 1;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.getValue}`;\n }\n}\n_a$s = Boolean;\n(() => {\n typeStore.Boolean = _a$s;\n})();\nBoolean.NAME = \"BOOLEAN\";\n\nclass LocalOctetStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\n constructor({ isConstructed = false, ...parameters } = {}) {\n super(parameters);\n this.isConstructed = isConstructed;\n }\n fromBER(inputBuffer, inputOffset, inputLength, context) {\n let resultOffset = 0;\n if (this.isConstructed) {\n this.isHexOnly = false;\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength, context);\n if (resultOffset === -1)\n return resultOffset;\n for (let i = 0; i < this.value.length; i++) {\n const currentBlockName = this.value[i].constructor.NAME;\n if (currentBlockName === END_OF_CONTENT_NAME) {\n if (this.isIndefiniteForm)\n break;\n else {\n this.error = \"EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only\";\n return -1;\n }\n }\n if (currentBlockName !== OCTET_STRING_NAME) {\n this.error = \"OCTET STRING may consists of OCTET STRINGs only\";\n return -1;\n }\n }\n }\n else {\n this.isHexOnly = true;\n resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\n this.blockLength = inputLength;\n }\n return resultOffset;\n }\n toBER(sizeOnly, writer) {\n if (this.isConstructed)\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\n return sizeOnly\n ? new ArrayBuffer(this.valueHexView.byteLength)\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalOctetStringValueBlock.NAME = \"OctetStringValueBlock\";\n\nvar _a$r;\nclass OctetString extends BaseBlock {\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\n var _b, _c;\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\n super({\n idBlock: {\n isConstructed: parameters.isConstructed,\n ...idBlock,\n },\n lenBlock: {\n ...lenBlock,\n isIndefiniteForm: !!parameters.isIndefiniteForm,\n },\n ...parameters,\n }, LocalOctetStringValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 4;\n }\n fromBER(inputBuffer, inputOffset, inputLength, context) {\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n if (inputLength === 0) {\n if (this.idBlock.error.length === 0)\n this.blockLength += this.idBlock.blockLength;\n if (this.lenBlock.error.length === 0)\n this.blockLength += this.lenBlock.blockLength;\n return inputOffset;\n }\n if (!this.valueBlock.isConstructed) {\n const view = inputBuffer instanceof ArrayBuffer ? new Uint8Array(inputBuffer) : inputBuffer;\n const buf = view.subarray(inputOffset, inputOffset + inputLength);\n try {\n if (buf.byteLength) {\n const parseContext = context !== null && context !== void 0 ? context : createFromBerContext();\n const asn = localFromBERWithChildContext(buf, 0, buf.byteLength, parseContext);\n if (asn.offset !== -1 && asn.offset === inputLength) {\n this.valueBlock.value = [asn.result];\n }\n }\n }\n catch {\n }\n }\n return super.fromBER(inputBuffer, inputOffset, inputLength, context);\n }\n onAsciiEncoding() {\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\n return Constructed.prototype.onAsciiEncoding.call(this);\n }\n const name = this.constructor.NAME;\n const value = pvtsutils__namespace.Convert.ToHex(this.valueBlock.valueHexView);\n return `${name} : ${value}`;\n }\n getValue() {\n if (!this.idBlock.isConstructed) {\n return this.valueBlock.valueHexView.slice().buffer;\n }\n const array = [];\n for (const content of this.valueBlock.value) {\n if (content instanceof _a$r) {\n array.push(content.valueBlock.valueHexView);\n }\n }\n return pvtsutils__namespace.BufferSourceConverter.concat(array);\n }\n}\n_a$r = OctetString;\n(() => {\n typeStore.OctetString = _a$r;\n})();\nOctetString.NAME = OCTET_STRING_NAME;\n\nclass LocalBitStringValueBlock extends HexBlock(LocalConstructedValueBlock) {\n constructor({ unusedBits = 0, isConstructed = false, ...parameters } = {}) {\n super(parameters);\n this.unusedBits = unusedBits;\n this.isConstructed = isConstructed;\n this.blockLength = this.valueHexView.byteLength;\n }\n fromBER(inputBuffer, inputOffset, inputLength, context) {\n if (!inputLength) {\n return inputOffset;\n }\n let resultOffset = -1;\n if (this.isConstructed) {\n resultOffset = LocalConstructedValueBlock.prototype.fromBER.call(this, inputBuffer, inputOffset, inputLength, context);\n if (resultOffset === -1)\n return resultOffset;\n for (const value of this.value) {\n const currentBlockName = value.constructor.NAME;\n if (currentBlockName === END_OF_CONTENT_NAME) {\n if (this.isIndefiniteForm)\n break;\n else {\n this.error = \"EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only\";\n return -1;\n }\n }\n if (currentBlockName !== BIT_STRING_NAME) {\n this.error = \"BIT STRING may consists of BIT STRINGs only\";\n return -1;\n }\n const valueBlock = value.valueBlock;\n if ((this.unusedBits > 0) && (valueBlock.unusedBits > 0)) {\n this.error = \"Using of \\\"unused bits\\\" inside constructive BIT STRING allowed for least one only\";\n return -1;\n }\n this.unusedBits = valueBlock.unusedBits;\n }\n return resultOffset;\n }\n const inputView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.unusedBits = intBuffer[0];\n if (this.unusedBits > 7) {\n this.error = \"Unused bits for BitString must be in range 0-7\";\n return -1;\n }\n if (!this.unusedBits) {\n const buf = intBuffer.subarray(1);\n try {\n if (buf.byteLength) {\n const parseContext = context !== null && context !== void 0 ? context : createFromBerContext();\n const asn = localFromBERWithChildContext(buf, 0, buf.byteLength, parseContext);\n if (asn.offset !== -1 && asn.offset === (inputLength - 1)) {\n this.value = [asn.result];\n }\n }\n }\n catch {\n }\n }\n this.valueHexView = intBuffer.subarray(1);\n this.blockLength = intBuffer.length;\n return (inputOffset + inputLength);\n }\n toBER(sizeOnly, writer) {\n if (this.isConstructed) {\n return LocalConstructedValueBlock.prototype.toBER.call(this, sizeOnly, writer);\n }\n if (sizeOnly) {\n return new ArrayBuffer(this.valueHexView.byteLength + 1);\n }\n if (!this.valueHexView.byteLength) {\n const empty = new Uint8Array(1);\n empty[0] = 0;\n return empty.buffer;\n }\n const retView = new Uint8Array(this.valueHexView.length + 1);\n retView[0] = this.unusedBits;\n retView.set(this.valueHexView, 1);\n return retView.buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n unusedBits: this.unusedBits,\n isConstructed: this.isConstructed,\n };\n }\n}\nLocalBitStringValueBlock.NAME = \"BitStringValueBlock\";\n\nvar _a$q;\nclass BitString extends BaseBlock {\n constructor({ idBlock = {}, lenBlock = {}, ...parameters } = {}) {\n var _b, _c;\n (_b = parameters.isConstructed) !== null && _b !== void 0 ? _b : (parameters.isConstructed = !!((_c = parameters.value) === null || _c === void 0 ? void 0 : _c.length));\n super({\n idBlock: {\n isConstructed: parameters.isConstructed,\n ...idBlock,\n },\n lenBlock: {\n ...lenBlock,\n isIndefiniteForm: !!parameters.isIndefiniteForm,\n },\n ...parameters,\n }, LocalBitStringValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 3;\n }\n fromBER(inputBuffer, inputOffset, inputLength, context) {\n this.valueBlock.isConstructed = this.idBlock.isConstructed;\n this.valueBlock.isIndefiniteForm = this.lenBlock.isIndefiniteForm;\n return super.fromBER(inputBuffer, inputOffset, inputLength, context);\n }\n onAsciiEncoding() {\n if (this.valueBlock.isConstructed || (this.valueBlock.value && this.valueBlock.value.length)) {\n return Constructed.prototype.onAsciiEncoding.call(this);\n }\n else {\n const bits = [];\n const valueHex = this.valueBlock.valueHexView;\n for (const byte of valueHex) {\n bits.push(byte.toString(2).padStart(8, \"0\"));\n }\n const bitsStr = bits.join(\"\");\n const name = this.constructor.NAME;\n const value = bitsStr.substring(0, bitsStr.length - this.valueBlock.unusedBits);\n return `${name} : ${value}`;\n }\n }\n}\n_a$q = BitString;\n(() => {\n typeStore.BitString = _a$q;\n})();\nBitString.NAME = BIT_STRING_NAME;\n\nvar _a$p;\nfunction viewAdd(first, second) {\n const c = new Uint8Array([0]);\n const firstView = new Uint8Array(first);\n const secondView = new Uint8Array(second);\n let firstViewCopy = firstView.slice(0);\n const firstViewCopyLength = firstViewCopy.length - 1;\n const secondViewCopy = secondView.slice(0);\n const secondViewCopyLength = secondViewCopy.length - 1;\n let value = 0;\n const max = (secondViewCopyLength < firstViewCopyLength) ? firstViewCopyLength : secondViewCopyLength;\n let counter = 0;\n for (let i = max; i >= 0; i--, counter++) {\n switch (true) {\n case (counter < secondViewCopy.length):\n value = firstViewCopy[firstViewCopyLength - counter] + secondViewCopy[secondViewCopyLength - counter] + c[0];\n break;\n default:\n value = firstViewCopy[firstViewCopyLength - counter] + c[0];\n }\n c[0] = value / 10;\n switch (true) {\n case (counter >= firstViewCopy.length):\n firstViewCopy = pvutils__namespace.utilConcatView(new Uint8Array([value % 10]), firstViewCopy);\n break;\n default:\n firstViewCopy[firstViewCopyLength - counter] = value % 10;\n }\n }\n if (c[0] > 0)\n firstViewCopy = pvutils__namespace.utilConcatView(c, firstViewCopy);\n return firstViewCopy;\n}\nfunction power2(n) {\n if (n >= powers2.length) {\n for (let p = powers2.length; p <= n; p++) {\n const c = new Uint8Array([0]);\n let digits = (powers2[p - 1]).slice(0);\n for (let i = (digits.length - 1); i >= 0; i--) {\n const newValue = new Uint8Array([(digits[i] << 1) + c[0]]);\n c[0] = newValue[0] / 10;\n digits[i] = newValue[0] % 10;\n }\n if (c[0] > 0)\n digits = pvutils__namespace.utilConcatView(c, digits);\n powers2.push(digits);\n }\n }\n return powers2[n];\n}\nfunction viewSub(first, second) {\n let b = 0;\n const firstView = new Uint8Array(first);\n const secondView = new Uint8Array(second);\n const firstViewCopy = firstView.slice(0);\n const firstViewCopyLength = firstViewCopy.length - 1;\n const secondViewCopy = secondView.slice(0);\n const secondViewCopyLength = secondViewCopy.length - 1;\n let value;\n let counter = 0;\n for (let i = secondViewCopyLength; i >= 0; i--, counter++) {\n value = firstViewCopy[firstViewCopyLength - counter] - secondViewCopy[secondViewCopyLength - counter] - b;\n switch (true) {\n case (value < 0):\n b = 1;\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\n break;\n default:\n b = 0;\n firstViewCopy[firstViewCopyLength - counter] = value;\n }\n }\n if (b > 0) {\n for (let i = (firstViewCopyLength - secondViewCopyLength + 1); i >= 0; i--, counter++) {\n value = firstViewCopy[firstViewCopyLength - counter] - b;\n if (value < 0) {\n b = 1;\n firstViewCopy[firstViewCopyLength - counter] = value + 10;\n }\n else {\n b = 0;\n firstViewCopy[firstViewCopyLength - counter] = value;\n break;\n }\n }\n }\n return firstViewCopy.slice();\n}\nclass LocalIntegerValueBlock extends HexBlock(ValueBlock) {\n setValueHex() {\n if (this.valueHexView.length >= 4) {\n this.warnings.push(\"Too big Integer for decoding, hex only\");\n this.isHexOnly = true;\n this._valueDec = 0;\n }\n else {\n this.isHexOnly = false;\n if (this.valueHexView.length > 0) {\n this._valueDec = pvutils__namespace.utilDecodeTC.call(this);\n }\n }\n }\n constructor({ value, ...parameters } = {}) {\n super(parameters);\n this._valueDec = 0;\n if (parameters.valueHex) {\n this.setValueHex();\n }\n if (value !== undefined) {\n this.valueDec = value;\n }\n }\n set valueDec(v) {\n this._valueDec = v;\n this.isHexOnly = false;\n this.valueHexView = new Uint8Array(pvutils__namespace.utilEncodeTC(v));\n }\n get valueDec() {\n return this._valueDec;\n }\n fromDER(inputBuffer, inputOffset, inputLength, expectedLength = 0) {\n const offset = this.fromBER(inputBuffer, inputOffset, inputLength);\n if (offset === -1)\n return offset;\n const view = this.valueHexView;\n if ((view[0] === 0x00) && ((view[1] & 0x80) !== 0)) {\n this.valueHexView = view.subarray(1);\n }\n else {\n if (expectedLength !== 0) {\n if (view.length < expectedLength) {\n if ((expectedLength - view.length) > 1)\n expectedLength = view.length + 1;\n this.valueHexView = view.subarray(expectedLength - view.length);\n }\n }\n }\n return offset;\n }\n toDER(sizeOnly = false) {\n const view = this.valueHexView;\n switch (true) {\n case ((view[0] & 0x80) !== 0):\n {\n const updatedView = new Uint8Array(this.valueHexView.length + 1);\n updatedView[0] = 0x00;\n updatedView.set(view, 1);\n this.valueHexView = updatedView;\n }\n break;\n case ((view[0] === 0x00) && ((view[1] & 0x80) === 0)):\n {\n this.valueHexView = this.valueHexView.subarray(1);\n }\n break;\n }\n return this.toBER(sizeOnly);\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const resultOffset = super.fromBER(inputBuffer, inputOffset, inputLength);\n if (resultOffset === -1) {\n return resultOffset;\n }\n this.setValueHex();\n return resultOffset;\n }\n toBER(sizeOnly) {\n return sizeOnly\n ? new ArrayBuffer(this.valueHexView.length)\n : this.valueHexView.slice().buffer;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n };\n }\n toString() {\n const firstBit = (this.valueHexView.length * 8) - 1;\n let digits = new Uint8Array((this.valueHexView.length * 8) / 3);\n let bitNumber = 0;\n let currentByte;\n const asn1View = this.valueHexView;\n let result = \"\";\n let flag = false;\n for (let byteNumber = (asn1View.byteLength - 1); byteNumber >= 0; byteNumber--) {\n currentByte = asn1View[byteNumber];\n for (let i = 0; i < 8; i++) {\n if ((currentByte & 1) === 1) {\n switch (bitNumber) {\n case firstBit:\n digits = viewSub(power2(bitNumber), digits);\n result = \"-\";\n break;\n default:\n digits = viewAdd(digits, power2(bitNumber));\n }\n }\n bitNumber++;\n currentByte >>= 1;\n }\n }\n for (let i = 0; i < digits.length; i++) {\n if (digits[i])\n flag = true;\n if (flag)\n result += digitsString.charAt(digits[i]);\n }\n if (flag === false)\n result += digitsString.charAt(0);\n return result;\n }\n}\n_a$p = LocalIntegerValueBlock;\nLocalIntegerValueBlock.NAME = \"IntegerValueBlock\";\n(() => {\n Object.defineProperty(_a$p.prototype, \"valueHex\", {\n set: function (v) {\n this.valueHexView = new Uint8Array(v);\n this.setValueHex();\n },\n get: function () {\n return this.valueHexView.slice().buffer;\n },\n });\n})();\n\nvar _a$o;\nclass Integer extends BaseBlock {\n constructor(parameters = {}) {\n super(parameters, LocalIntegerValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 2;\n }\n toBigInt() {\n assertBigInt();\n return BigInt(this.valueBlock.toString());\n }\n static fromBigInt(value) {\n assertBigInt();\n const bigIntValue = BigInt(value);\n const writer = new ViewWriter();\n const hex = bigIntValue.toString(16).replace(/^-/, \"\");\n const view = new Uint8Array(pvtsutils__namespace.Convert.FromHex(hex));\n if (bigIntValue < 0) {\n const first = new Uint8Array(view.length + (view[0] & 0x80 ? 1 : 0));\n first[0] |= 0x80;\n const firstInt = BigInt(`0x${pvtsutils__namespace.Convert.ToHex(first)}`);\n const secondInt = firstInt + bigIntValue;\n const second = pvtsutils__namespace.BufferSourceConverter.toUint8Array(pvtsutils__namespace.Convert.FromHex(secondInt.toString(16)));\n second[0] |= 0x80;\n writer.write(second);\n }\n else {\n if (view[0] & 0x80) {\n writer.write(new Uint8Array([0]));\n }\n writer.write(view);\n }\n const res = new _a$o({ valueHex: writer.final() });\n return res;\n }\n convertToDER() {\n const integer = new _a$o({ valueHex: this.valueBlock.valueHexView });\n integer.valueBlock.toDER();\n return integer;\n }\n convertFromDER() {\n return new _a$o({\n valueHex: this.valueBlock.valueHexView[0] === 0\n ? this.valueBlock.valueHexView.subarray(1)\n : this.valueBlock.valueHexView,\n });\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString()}`;\n }\n}\n_a$o = Integer;\n(() => {\n typeStore.Integer = _a$o;\n})();\nInteger.NAME = \"INTEGER\";\n\nvar _a$n;\nclass Enumerated extends Integer {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 10;\n }\n}\n_a$n = Enumerated;\n(() => {\n typeStore.Enumerated = _a$n;\n})();\nEnumerated.NAME = \"ENUMERATED\";\n\nclass LocalSidValueBlock extends HexBlock(ValueBlock) {\n constructor({ valueDec = -1, isFirstSid = false, ...parameters } = {}) {\n super(parameters);\n this.valueDec = valueDec;\n this.isFirstSid = isFirstSid;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (!inputLength) {\n return inputOffset;\n }\n const inputView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength)) {\n return -1;\n }\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.valueHexView = new Uint8Array(inputLength);\n for (let i = 0; i < inputLength; i++) {\n this.valueHexView[i] = intBuffer[i] & 0x7F;\n this.blockLength++;\n if ((intBuffer[i] & 0x80) === 0x00)\n break;\n }\n const tempView = new Uint8Array(this.blockLength);\n for (let i = 0; i < this.blockLength; i++) {\n tempView[i] = this.valueHexView[i];\n }\n this.valueHexView = tempView;\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n if (this.valueHexView[0] === 0x00)\n this.warnings.push(\"Needlessly long format of SID encoding\");\n if (this.blockLength <= 8)\n this.valueDec = pvutils__namespace.utilFromBase(this.valueHexView, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Too big SID for decoding, hex only\");\n }\n return (inputOffset + this.blockLength);\n }\n set valueBigInt(value) {\n assertBigInt();\n let bits = BigInt(value).toString(2);\n while (bits.length % 7) {\n bits = \"0\" + bits;\n }\n const bytes = new Uint8Array(bits.length / 7);\n for (let i = 0; i < bytes.length; i++) {\n bytes[i] = parseInt(bits.slice(i * 7, i * 7 + 7), 2) + (i + 1 < bytes.length ? 0x80 : 0);\n }\n this.fromBER(bytes.buffer, 0, bytes.length);\n }\n toBER(sizeOnly) {\n if (this.isHexOnly) {\n if (sizeOnly)\n return (new ArrayBuffer(this.valueHexView.byteLength));\n const curView = this.valueHexView;\n const retView = new Uint8Array(this.blockLength);\n for (let i = 0; i < (this.blockLength - 1); i++)\n retView[i] = curView[i] | 0x80;\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\n return retView.buffer;\n }\n const encodedBuf = pvutils__namespace.utilToBase(this.valueDec, 7);\n if (encodedBuf.byteLength === 0) {\n this.error = \"Error during encoding SID value\";\n return EMPTY_BUFFER;\n }\n const retView = new Uint8Array(encodedBuf.byteLength);\n if (!sizeOnly) {\n const encodedView = new Uint8Array(encodedBuf);\n const len = encodedBuf.byteLength - 1;\n for (let i = 0; i < len; i++)\n retView[i] = encodedView[i] | 0x80;\n retView[len] = encodedView[len];\n }\n return retView;\n }\n toString() {\n let result = \"\";\n if (this.isHexOnly)\n result = pvtsutils__namespace.Convert.ToHex(this.valueHexView);\n else {\n if (this.isFirstSid) {\n let sidValue = this.valueDec;\n if (this.valueDec <= 39)\n result = \"0.\";\n else {\n if (this.valueDec <= 79) {\n result = \"1.\";\n sidValue -= 40;\n }\n else {\n result = \"2.\";\n sidValue -= 80;\n }\n }\n result += sidValue.toString();\n }\n else\n result = this.valueDec.toString();\n }\n return result;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n isFirstSid: this.isFirstSid,\n };\n }\n}\nLocalSidValueBlock.NAME = \"sidBlock\";\n\nclass LocalObjectIdentifierValueBlock extends ValueBlock {\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\n super(parameters);\n this.value = [];\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n let resultOffset = inputOffset;\n while (inputLength > 0) {\n const sidBlock = new LocalSidValueBlock();\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\n if (resultOffset === -1) {\n this.blockLength = 0;\n this.error = sidBlock.error;\n return resultOffset;\n }\n if (this.value.length === 0)\n sidBlock.isFirstSid = true;\n this.blockLength += sidBlock.blockLength;\n inputLength -= sidBlock.blockLength;\n this.value.push(sidBlock);\n }\n return resultOffset;\n }\n toBER(sizeOnly) {\n const retBuffers = [];\n for (let i = 0; i < this.value.length; i++) {\n const valueBuf = this.value[i].toBER(sizeOnly);\n if (valueBuf.byteLength === 0) {\n this.error = this.value[i].error;\n return EMPTY_BUFFER;\n }\n retBuffers.push(valueBuf);\n }\n return concat(retBuffers);\n }\n fromString(string) {\n this.value = [];\n let pos1 = 0;\n let pos2 = 0;\n let sid = \"\";\n let flag = false;\n do {\n pos2 = string.indexOf(\".\", pos1);\n if (pos2 === -1)\n sid = string.substring(pos1);\n else\n sid = string.substring(pos1, pos2);\n pos1 = pos2 + 1;\n if (flag) {\n const sidBlock = this.value[0];\n let plus = 0;\n switch (sidBlock.valueDec) {\n case 0:\n break;\n case 1:\n plus = 40;\n break;\n case 2:\n plus = 80;\n break;\n default:\n this.value = [];\n return;\n }\n const parsedSID = parseInt(sid, 10);\n if (isNaN(parsedSID))\n return;\n sidBlock.valueDec = parsedSID + plus;\n flag = false;\n }\n else {\n const sidBlock = new LocalSidValueBlock();\n if (sid > Number.MAX_SAFE_INTEGER) {\n assertBigInt();\n const sidValue = BigInt(sid);\n sidBlock.valueBigInt = sidValue;\n }\n else {\n sidBlock.valueDec = parseInt(sid, 10);\n if (isNaN(sidBlock.valueDec))\n return;\n }\n if (!this.value.length) {\n sidBlock.isFirstSid = true;\n flag = true;\n }\n this.value.push(sidBlock);\n }\n } while (pos2 !== -1);\n }\n toString() {\n let result = \"\";\n let isHexOnly = false;\n for (let i = 0; i < this.value.length; i++) {\n isHexOnly = this.value[i].isHexOnly;\n let sidStr = this.value[i].toString();\n if (i !== 0)\n result = `${result}.`;\n if (isHexOnly) {\n sidStr = `{${sidStr}}`;\n if (this.value[i].isFirstSid)\n result = `2.{${sidStr} - 80}`;\n else\n result += sidStr;\n }\n else\n result += sidStr;\n }\n return result;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n value: this.toString(),\n sidArray: [],\n };\n for (let i = 0; i < this.value.length; i++) {\n object.sidArray.push(this.value[i].toJSON());\n }\n return object;\n }\n}\nLocalObjectIdentifierValueBlock.NAME = \"ObjectIdentifierValueBlock\";\n\nvar _a$m;\nclass ObjectIdentifier extends BaseBlock {\n getValue() {\n return this.valueBlock.toString();\n }\n setValue(value) {\n this.valueBlock.fromString(value);\n }\n constructor(parameters = {}) {\n super(parameters, LocalObjectIdentifierValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 6;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.getValue(),\n };\n }\n}\n_a$m = ObjectIdentifier;\n(() => {\n typeStore.ObjectIdentifier = _a$m;\n})();\nObjectIdentifier.NAME = \"OBJECT IDENTIFIER\";\n\nclass LocalRelativeSidValueBlock extends HexBlock(LocalBaseBlock) {\n constructor({ valueDec = 0, ...parameters } = {}) {\n super(parameters);\n this.valueDec = valueDec;\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n if (inputLength === 0)\n return inputOffset;\n const inputView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n if (!checkBufferParams(this, inputView, inputOffset, inputLength))\n return -1;\n const intBuffer = inputView.subarray(inputOffset, inputOffset + inputLength);\n this.valueHexView = new Uint8Array(inputLength);\n for (let i = 0; i < inputLength; i++) {\n this.valueHexView[i] = intBuffer[i] & 0x7F;\n this.blockLength++;\n if ((intBuffer[i] & 0x80) === 0x00)\n break;\n }\n const tempView = new Uint8Array(this.blockLength);\n for (let i = 0; i < this.blockLength; i++)\n tempView[i] = this.valueHexView[i];\n this.valueHexView = tempView;\n if ((intBuffer[this.blockLength - 1] & 0x80) !== 0x00) {\n this.error = \"End of input reached before message was fully decoded\";\n return -1;\n }\n if (this.valueHexView[0] === 0x00)\n this.warnings.push(\"Needlessly long format of SID encoding\");\n if (this.blockLength <= 8)\n this.valueDec = pvutils__namespace.utilFromBase(this.valueHexView, 7);\n else {\n this.isHexOnly = true;\n this.warnings.push(\"Too big SID for decoding, hex only\");\n }\n return (inputOffset + this.blockLength);\n }\n toBER(sizeOnly) {\n if (this.isHexOnly) {\n if (sizeOnly)\n return (new ArrayBuffer(this.valueHexView.byteLength));\n const curView = this.valueHexView;\n const retView = new Uint8Array(this.blockLength);\n for (let i = 0; i < (this.blockLength - 1); i++)\n retView[i] = curView[i] | 0x80;\n retView[this.blockLength - 1] = curView[this.blockLength - 1];\n return retView.buffer;\n }\n const encodedBuf = pvutils__namespace.utilToBase(this.valueDec, 7);\n if (encodedBuf.byteLength === 0) {\n this.error = \"Error during encoding SID value\";\n return EMPTY_BUFFER;\n }\n const retView = new Uint8Array(encodedBuf.byteLength);\n if (!sizeOnly) {\n const encodedView = new Uint8Array(encodedBuf);\n const len = encodedBuf.byteLength - 1;\n for (let i = 0; i < len; i++)\n retView[i] = encodedView[i] | 0x80;\n retView[len] = encodedView[len];\n }\n return retView.buffer;\n }\n toString() {\n let result = \"\";\n if (this.isHexOnly)\n result = pvtsutils__namespace.Convert.ToHex(this.valueHexView);\n else {\n result = this.valueDec.toString();\n }\n return result;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n valueDec: this.valueDec,\n };\n }\n}\nLocalRelativeSidValueBlock.NAME = \"relativeSidBlock\";\n\nclass LocalRelativeObjectIdentifierValueBlock extends ValueBlock {\n constructor({ value = EMPTY_STRING, ...parameters } = {}) {\n super(parameters);\n this.value = [];\n if (value) {\n this.fromString(value);\n }\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n let resultOffset = inputOffset;\n while (inputLength > 0) {\n const sidBlock = new LocalRelativeSidValueBlock();\n resultOffset = sidBlock.fromBER(inputBuffer, resultOffset, inputLength);\n if (resultOffset === -1) {\n this.blockLength = 0;\n this.error = sidBlock.error;\n return resultOffset;\n }\n this.blockLength += sidBlock.blockLength;\n inputLength -= sidBlock.blockLength;\n this.value.push(sidBlock);\n }\n return resultOffset;\n }\n toBER(sizeOnly, _writer) {\n const retBuffers = [];\n for (let i = 0; i < this.value.length; i++) {\n const valueBuf = this.value[i].toBER(sizeOnly);\n if (valueBuf.byteLength === 0) {\n this.error = this.value[i].error;\n return EMPTY_BUFFER;\n }\n retBuffers.push(valueBuf);\n }\n return concat(retBuffers);\n }\n fromString(string) {\n this.value = [];\n let pos1 = 0;\n let pos2 = 0;\n let sid = \"\";\n do {\n pos2 = string.indexOf(\".\", pos1);\n if (pos2 === -1)\n sid = string.substring(pos1);\n else\n sid = string.substring(pos1, pos2);\n pos1 = pos2 + 1;\n const sidBlock = new LocalRelativeSidValueBlock();\n sidBlock.valueDec = parseInt(sid, 10);\n if (isNaN(sidBlock.valueDec))\n return true;\n this.value.push(sidBlock);\n } while (pos2 !== -1);\n return true;\n }\n toString() {\n let result = \"\";\n let isHexOnly = false;\n for (let i = 0; i < this.value.length; i++) {\n isHexOnly = this.value[i].isHexOnly;\n let sidStr = this.value[i].toString();\n if (i !== 0)\n result = `${result}.`;\n if (isHexOnly) {\n sidStr = `{${sidStr}}`;\n result += sidStr;\n }\n else\n result += sidStr;\n }\n return result;\n }\n toJSON() {\n const object = {\n ...super.toJSON(),\n value: this.toString(),\n sidArray: [],\n };\n for (let i = 0; i < this.value.length; i++)\n object.sidArray.push(this.value[i].toJSON());\n return object;\n }\n}\nLocalRelativeObjectIdentifierValueBlock.NAME = \"RelativeObjectIdentifierValueBlock\";\n\nvar _a$l;\nclass RelativeObjectIdentifier extends BaseBlock {\n getValue() {\n return this.valueBlock.toString();\n }\n setValue(value) {\n this.valueBlock.fromString(value);\n }\n constructor(parameters = {}) {\n super(parameters, LocalRelativeObjectIdentifierValueBlock);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 13;\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.valueBlock.toString() || \"empty\"}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.getValue(),\n };\n }\n}\n_a$l = RelativeObjectIdentifier;\n(() => {\n typeStore.RelativeObjectIdentifier = _a$l;\n})();\nRelativeObjectIdentifier.NAME = \"RelativeObjectIdentifier\";\n\nvar _a$k;\nclass Sequence extends Constructed {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 16;\n }\n}\n_a$k = Sequence;\n(() => {\n typeStore.Sequence = _a$k;\n})();\nSequence.NAME = \"SEQUENCE\";\n\nvar _a$j;\nclass Set extends Constructed {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 17;\n }\n}\n_a$j = Set;\n(() => {\n typeStore.Set = _a$j;\n})();\nSet.NAME = \"SET\";\n\nclass LocalStringValueBlock extends HexBlock(ValueBlock) {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.isHexOnly = true;\n this.value = EMPTY_STRING;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n value: this.value,\n };\n }\n}\nLocalStringValueBlock.NAME = \"StringValueBlock\";\n\nclass LocalSimpleStringValueBlock extends LocalStringValueBlock {\n}\nLocalSimpleStringValueBlock.NAME = \"SimpleStringValueBlock\";\n\nclass LocalSimpleStringBlock extends BaseStringBlock {\n constructor({ ...parameters } = {}) {\n super(parameters, LocalSimpleStringValueBlock);\n }\n fromBuffer(inputBuffer) {\n this.valueBlock.value = String.fromCharCode.apply(null, pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer));\n }\n fromString(inputString) {\n const strLen = inputString.length;\n const view = this.valueBlock.valueHexView = new Uint8Array(strLen);\n for (let i = 0; i < strLen; i++)\n view[i] = inputString.charCodeAt(i);\n this.valueBlock.value = inputString;\n }\n}\nLocalSimpleStringBlock.NAME = \"SIMPLE STRING\";\n\nclass LocalUtf8StringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n this.valueBlock.valueHexView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n try {\n this.valueBlock.value = pvtsutils__namespace.Convert.ToUtf8String(inputBuffer);\n }\n catch (ex) {\n this.warnings.push(`Error during \"decodeURIComponent\": ${ex}, using raw string`);\n this.valueBlock.value = pvtsutils__namespace.Convert.ToBinary(inputBuffer);\n }\n }\n fromString(inputString) {\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils__namespace.Convert.FromUtf8String(inputString));\n this.valueBlock.value = inputString;\n }\n}\nLocalUtf8StringValueBlock.NAME = \"Utf8StringValueBlock\";\n\nvar _a$i;\nclass Utf8String extends LocalUtf8StringValueBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 12;\n }\n}\n_a$i = Utf8String;\n(() => {\n typeStore.Utf8String = _a$i;\n})();\nUtf8String.NAME = \"UTF8String\";\n\nclass LocalBmpStringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n this.valueBlock.value = pvtsutils__namespace.Convert.ToUtf16String(inputBuffer);\n this.valueBlock.valueHexView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer);\n }\n fromString(inputString) {\n this.valueBlock.value = inputString;\n this.valueBlock.valueHexView = new Uint8Array(pvtsutils__namespace.Convert.FromUtf16String(inputString));\n }\n}\nLocalBmpStringValueBlock.NAME = \"BmpStringValueBlock\";\n\nvar _a$h;\nclass BmpString extends LocalBmpStringValueBlock {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 30;\n }\n}\n_a$h = BmpString;\n(() => {\n typeStore.BmpString = _a$h;\n})();\nBmpString.NAME = \"BMPString\";\n\nclass LocalUniversalStringValueBlock extends LocalSimpleStringBlock {\n fromBuffer(inputBuffer) {\n const copyBuffer = ArrayBuffer.isView(inputBuffer) ? inputBuffer.slice().buffer : inputBuffer.slice(0);\n const valueView = new Uint8Array(copyBuffer);\n for (let i = 0; i < valueView.length; i += 4) {\n valueView[i] = valueView[i + 3];\n valueView[i + 1] = valueView[i + 2];\n valueView[i + 2] = 0x00;\n valueView[i + 3] = 0x00;\n }\n this.valueBlock.value = String.fromCharCode.apply(null, new Uint32Array(copyBuffer));\n }\n fromString(inputString) {\n const strLength = inputString.length;\n const valueHexView = this.valueBlock.valueHexView = new Uint8Array(strLength * 4);\n for (let i = 0; i < strLength; i++) {\n const codeBuf = pvutils__namespace.utilToBase(inputString.charCodeAt(i), 8);\n const codeView = new Uint8Array(codeBuf);\n if (codeView.length > 4)\n continue;\n const dif = 4 - codeView.length;\n for (let j = (codeView.length - 1); j >= 0; j--)\n valueHexView[i * 4 + j + dif] = codeView[j];\n }\n this.valueBlock.value = inputString;\n }\n}\nLocalUniversalStringValueBlock.NAME = \"UniversalStringValueBlock\";\n\nvar _a$g;\nclass UniversalString extends LocalUniversalStringValueBlock {\n constructor({ ...parameters } = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 28;\n }\n}\n_a$g = UniversalString;\n(() => {\n typeStore.UniversalString = _a$g;\n})();\nUniversalString.NAME = \"UniversalString\";\n\nvar _a$f;\nclass NumericString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 18;\n }\n}\n_a$f = NumericString;\n(() => {\n typeStore.NumericString = _a$f;\n})();\nNumericString.NAME = \"NumericString\";\n\nvar _a$e;\nclass PrintableString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 19;\n }\n}\n_a$e = PrintableString;\n(() => {\n typeStore.PrintableString = _a$e;\n})();\nPrintableString.NAME = \"PrintableString\";\n\nvar _a$d;\nclass TeletexString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 20;\n }\n}\n_a$d = TeletexString;\n(() => {\n typeStore.TeletexString = _a$d;\n})();\nTeletexString.NAME = \"TeletexString\";\n\nvar _a$c;\nclass VideotexString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 21;\n }\n}\n_a$c = VideotexString;\n(() => {\n typeStore.VideotexString = _a$c;\n})();\nVideotexString.NAME = \"VideotexString\";\n\nvar _a$b;\nclass IA5String extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 22;\n }\n}\n_a$b = IA5String;\n(() => {\n typeStore.IA5String = _a$b;\n})();\nIA5String.NAME = \"IA5String\";\n\nvar _a$a;\nclass GraphicString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 25;\n }\n}\n_a$a = GraphicString;\n(() => {\n typeStore.GraphicString = _a$a;\n})();\nGraphicString.NAME = \"GraphicString\";\n\nvar _a$9;\nclass VisibleString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 26;\n }\n}\n_a$9 = VisibleString;\n(() => {\n typeStore.VisibleString = _a$9;\n})();\nVisibleString.NAME = \"VisibleString\";\n\nvar _a$8;\nclass GeneralString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 27;\n }\n}\n_a$8 = GeneralString;\n(() => {\n typeStore.GeneralString = _a$8;\n})();\nGeneralString.NAME = \"GeneralString\";\n\nvar _a$7;\nclass CharacterString extends LocalSimpleStringBlock {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 29;\n }\n}\n_a$7 = CharacterString;\n(() => {\n typeStore.CharacterString = _a$7;\n})();\nCharacterString.NAME = \"CharacterString\";\n\nvar _a$6;\nclass UTCTime extends VisibleString {\n constructor({ value, valueDate, ...parameters } = {}) {\n super(parameters);\n this.year = 0;\n this.month = 0;\n this.day = 0;\n this.hour = 0;\n this.minute = 0;\n this.second = 0;\n if (value) {\n this.fromString(value);\n this.valueBlock.valueHexView = new Uint8Array(value.length);\n for (let i = 0; i < value.length; i++)\n this.valueBlock.valueHexView[i] = value.charCodeAt(i);\n }\n if (valueDate) {\n this.fromDate(valueDate);\n this.valueBlock.valueHexView = new Uint8Array(this.toBuffer());\n }\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 23;\n }\n fromBuffer(inputBuffer) {\n this.fromString(String.fromCharCode.apply(null, pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer)));\n }\n toBuffer() {\n const str = this.toString();\n const buffer = new ArrayBuffer(str.length);\n const view = new Uint8Array(buffer);\n for (let i = 0; i < str.length; i++)\n view[i] = str.charCodeAt(i);\n return buffer;\n }\n fromDate(inputDate) {\n this.year = inputDate.getUTCFullYear();\n this.month = inputDate.getUTCMonth() + 1;\n this.day = inputDate.getUTCDate();\n this.hour = inputDate.getUTCHours();\n this.minute = inputDate.getUTCMinutes();\n this.second = inputDate.getUTCSeconds();\n }\n toDate() {\n return (new Date(Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second)));\n }\n fromString(inputString) {\n const parser = /(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})Z/ig;\n const parserArray = parser.exec(inputString);\n if (parserArray === null) {\n this.error = \"Wrong input string for conversion\";\n return;\n }\n const year = parseInt(parserArray[1], 10);\n if (year >= 50)\n this.year = 1900 + year;\n else\n this.year = 2000 + year;\n this.month = parseInt(parserArray[2], 10);\n this.day = parseInt(parserArray[3], 10);\n this.hour = parseInt(parserArray[4], 10);\n this.minute = parseInt(parserArray[5], 10);\n this.second = parseInt(parserArray[6], 10);\n }\n toString(encoding = \"iso\") {\n if (encoding === \"iso\") {\n const outputArray = new Array(7);\n outputArray[0] = pvutils__namespace.padNumber(((this.year < 2000) ? (this.year - 1900) : (this.year - 2000)), 2);\n outputArray[1] = pvutils__namespace.padNumber(this.month, 2);\n outputArray[2] = pvutils__namespace.padNumber(this.day, 2);\n outputArray[3] = pvutils__namespace.padNumber(this.hour, 2);\n outputArray[4] = pvutils__namespace.padNumber(this.minute, 2);\n outputArray[5] = pvutils__namespace.padNumber(this.second, 2);\n outputArray[6] = \"Z\";\n return outputArray.join(\"\");\n }\n return super.toString(encoding);\n }\n onAsciiEncoding() {\n return `${this.constructor.NAME} : ${this.toDate().toISOString()}`;\n }\n toJSON() {\n return {\n ...super.toJSON(),\n year: this.year,\n month: this.month,\n day: this.day,\n hour: this.hour,\n minute: this.minute,\n second: this.second,\n };\n }\n}\n_a$6 = UTCTime;\n(() => {\n typeStore.UTCTime = _a$6;\n})();\nUTCTime.NAME = \"UTCTime\";\n\nvar _a$5;\nclass GeneralizedTime extends UTCTime {\n constructor(parameters = {}) {\n var _b;\n super(parameters);\n (_b = this.millisecond) !== null && _b !== void 0 ? _b : (this.millisecond = 0);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 24;\n }\n fromDate(inputDate) {\n super.fromDate(inputDate);\n this.millisecond = inputDate.getUTCMilliseconds();\n }\n toDate() {\n const utcDate = Date.UTC(this.year, this.month - 1, this.day, this.hour, this.minute, this.second, this.millisecond);\n return (new Date(utcDate));\n }\n fromString(inputString) {\n let isUTC = false;\n let timeString = \"\";\n let dateTimeString = \"\";\n let fractionPart = 0;\n let parser;\n let hourDifference = 0;\n let minuteDifference = 0;\n if (inputString[inputString.length - 1] === \"Z\") {\n timeString = inputString.substring(0, inputString.length - 1);\n isUTC = true;\n }\n else {\n const number = new Number(inputString[inputString.length - 1]);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n timeString = inputString;\n }\n if (isUTC) {\n if (timeString.indexOf(\"+\") !== -1)\n throw new Error(\"Wrong input string for conversion\");\n if (timeString.indexOf(\"-\") !== -1)\n throw new Error(\"Wrong input string for conversion\");\n }\n else {\n let multiplier = 1;\n let differencePosition = timeString.indexOf(\"+\");\n let differenceString = \"\";\n if (differencePosition === -1) {\n differencePosition = timeString.indexOf(\"-\");\n multiplier = -1;\n }\n if (differencePosition !== -1) {\n differenceString = timeString.substring(differencePosition + 1);\n timeString = timeString.substring(0, differencePosition);\n if ((differenceString.length !== 2) && (differenceString.length !== 4))\n throw new Error(\"Wrong input string for conversion\");\n let number = parseInt(differenceString.substring(0, 2), 10);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n hourDifference = multiplier * number;\n if (differenceString.length === 4) {\n number = parseInt(differenceString.substring(2, 4), 10);\n if (isNaN(number.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n minuteDifference = multiplier * number;\n }\n }\n }\n let fractionPointPosition = timeString.indexOf(\".\");\n if (fractionPointPosition === -1)\n fractionPointPosition = timeString.indexOf(\",\");\n if (fractionPointPosition !== -1) {\n const fractionPartCheck = new Number(`0${timeString.substring(fractionPointPosition)}`);\n if (isNaN(fractionPartCheck.valueOf()))\n throw new Error(\"Wrong input string for conversion\");\n fractionPart = fractionPartCheck.valueOf();\n dateTimeString = timeString.substring(0, fractionPointPosition);\n }\n else\n dateTimeString = timeString;\n switch (true) {\n case (dateTimeString.length === 8):\n parser = /(\\d{4})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1)\n throw new Error(\"Wrong input string for conversion\");\n break;\n case (dateTimeString.length === 10):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n let fractionResult = 60 * fractionPart;\n this.minute = Math.floor(fractionResult);\n fractionResult = 60 * (fractionResult - this.minute);\n this.second = Math.floor(fractionResult);\n fractionResult = 1000 * (fractionResult - this.second);\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n case (dateTimeString.length === 12):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n let fractionResult = 60 * fractionPart;\n this.second = Math.floor(fractionResult);\n fractionResult = 1000 * (fractionResult - this.second);\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n case (dateTimeString.length === 14):\n parser = /(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})/ig;\n if (fractionPointPosition !== -1) {\n const fractionResult = 1000 * fractionPart;\n this.millisecond = Math.floor(fractionResult);\n }\n break;\n default:\n throw new Error(\"Wrong input string for conversion\");\n }\n const parserArray = parser.exec(dateTimeString);\n if (parserArray === null)\n throw new Error(\"Wrong input string for conversion\");\n for (let j = 1; j < parserArray.length; j++) {\n switch (j) {\n case 1:\n this.year = parseInt(parserArray[j], 10);\n break;\n case 2:\n this.month = parseInt(parserArray[j], 10);\n break;\n case 3:\n this.day = parseInt(parserArray[j], 10);\n break;\n case 4:\n this.hour = parseInt(parserArray[j], 10) + hourDifference;\n break;\n case 5:\n this.minute = parseInt(parserArray[j], 10) + minuteDifference;\n break;\n case 6:\n this.second = parseInt(parserArray[j], 10);\n break;\n default:\n throw new Error(\"Wrong input string for conversion\");\n }\n }\n if (isUTC === false) {\n const tempDate = new Date(this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n this.year = tempDate.getUTCFullYear();\n this.month = tempDate.getUTCMonth();\n this.day = tempDate.getUTCDay();\n this.hour = tempDate.getUTCHours();\n this.minute = tempDate.getUTCMinutes();\n this.second = tempDate.getUTCSeconds();\n this.millisecond = tempDate.getUTCMilliseconds();\n }\n }\n toString(encoding = \"iso\") {\n if (encoding === \"iso\") {\n const outputArray = [];\n outputArray.push(pvutils__namespace.padNumber(this.year, 4));\n outputArray.push(pvutils__namespace.padNumber(this.month, 2));\n outputArray.push(pvutils__namespace.padNumber(this.day, 2));\n outputArray.push(pvutils__namespace.padNumber(this.hour, 2));\n outputArray.push(pvutils__namespace.padNumber(this.minute, 2));\n outputArray.push(pvutils__namespace.padNumber(this.second, 2));\n if (this.millisecond !== 0) {\n outputArray.push(\".\");\n outputArray.push(pvutils__namespace.padNumber(this.millisecond, 3));\n }\n outputArray.push(\"Z\");\n return outputArray.join(\"\");\n }\n return super.toString(encoding);\n }\n toJSON() {\n return {\n ...super.toJSON(),\n millisecond: this.millisecond,\n };\n }\n}\n_a$5 = GeneralizedTime;\n(() => {\n typeStore.GeneralizedTime = _a$5;\n})();\nGeneralizedTime.NAME = \"GeneralizedTime\";\n\nvar _a$4;\nclass DATE extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 31;\n }\n}\n_a$4 = DATE;\n(() => {\n typeStore.DATE = _a$4;\n})();\nDATE.NAME = \"DATE\";\n\nvar _a$3;\nclass TimeOfDay extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 32;\n }\n}\n_a$3 = TimeOfDay;\n(() => {\n typeStore.TimeOfDay = _a$3;\n})();\nTimeOfDay.NAME = \"TimeOfDay\";\n\nvar _a$2;\nclass DateTime extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 33;\n }\n}\n_a$2 = DateTime;\n(() => {\n typeStore.DateTime = _a$2;\n})();\nDateTime.NAME = \"DateTime\";\n\nvar _a$1;\nclass Duration extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 34;\n }\n}\n_a$1 = Duration;\n(() => {\n typeStore.Duration = _a$1;\n})();\nDuration.NAME = \"Duration\";\n\nvar _a;\nclass TIME extends Utf8String {\n constructor(parameters = {}) {\n super(parameters);\n this.idBlock.tagClass = 1;\n this.idBlock.tagNumber = 14;\n }\n}\n_a = TIME;\n(() => {\n typeStore.TIME = _a;\n})();\nTIME.NAME = \"TIME\";\n\nclass Any {\n constructor({ name = EMPTY_STRING, optional = false } = {}) {\n this.name = name;\n this.optional = optional;\n }\n}\n\nclass Choice extends Any {\n constructor({ value = [], ...parameters } = {}) {\n super(parameters);\n this.value = value;\n }\n}\n\nclass Repeated extends Any {\n constructor({ value = new Any(), local = false, ...parameters } = {}) {\n super(parameters);\n this.value = value;\n this.local = local;\n }\n}\n\nclass RawData {\n get data() {\n return this.dataView.slice().buffer;\n }\n set data(value) {\n this.dataView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(value);\n }\n constructor({ data = EMPTY_VIEW } = {}) {\n this.dataView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(data);\n }\n fromBER(inputBuffer, inputOffset, inputLength) {\n const endLength = inputOffset + inputLength;\n this.dataView = pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer).subarray(inputOffset, endLength);\n return endLength;\n }\n toBER(_sizeOnly) {\n return this.dataView.slice().buffer;\n }\n}\n\nfunction compareSchema(root, inputData, inputSchema) {\n if (inputSchema instanceof Choice) {\n for (const element of inputSchema.value) {\n const result = compareSchema(root, inputData, element);\n if (result.verified) {\n return {\n verified: true,\n result: root,\n };\n }\n }\n {\n const _result = {\n verified: false,\n result: { error: \"Wrong values for Choice type\" },\n };\n if (inputSchema.hasOwnProperty(NAME))\n _result.name = inputSchema.name;\n return _result;\n }\n }\n if (inputSchema instanceof Any) {\n if (inputSchema.hasOwnProperty(NAME))\n root[inputSchema.name] = inputData;\n return {\n verified: true,\n result: root,\n };\n }\n if ((root instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong root object\" },\n };\n }\n if ((inputData instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 data\" },\n };\n }\n if ((inputSchema instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((ID_BLOCK in inputSchema) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((FROM_BER in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if ((TO_BER in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n const encodedId = inputSchema.idBlock.toBER(false);\n if (encodedId.byteLength === 0) {\n return {\n verified: false,\n result: { error: \"Error encoding idBlock for ASN.1 schema\" },\n };\n }\n const decodedOffset = inputSchema.idBlock.fromBER(encodedId, 0, encodedId.byteLength);\n if (decodedOffset === -1) {\n return {\n verified: false,\n result: { error: \"Error decoding idBlock for ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(TAG_CLASS) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.tagClass !== inputData.idBlock.tagClass) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(TAG_NUMBER) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.tagNumber !== inputData.idBlock.tagNumber) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.hasOwnProperty(IS_CONSTRUCTED) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.isConstructed !== inputData.idBlock.isConstructed) {\n return {\n verified: false,\n result: root,\n };\n }\n if (!(IS_HEX_ONLY in inputSchema.idBlock)) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n if (inputSchema.idBlock.isHexOnly !== inputData.idBlock.isHexOnly) {\n return {\n verified: false,\n result: root,\n };\n }\n if (inputSchema.idBlock.isHexOnly) {\n if ((VALUE_HEX_VIEW in inputSchema.idBlock) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema\" },\n };\n }\n const schemaView = inputSchema.idBlock.valueHexView;\n const asn1View = inputData.idBlock.valueHexView;\n if (schemaView.length !== asn1View.length) {\n return {\n verified: false,\n result: root,\n };\n }\n for (let i = 0; i < schemaView.length; i++) {\n if (schemaView[i] !== asn1View[1]) {\n return {\n verified: false,\n result: root,\n };\n }\n }\n }\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n root[inputSchema.name] = inputData;\n }\n if (inputSchema instanceof typeStore.Constructed) {\n let admission = 0;\n let result = {\n verified: false,\n result: { error: \"Unknown error\" },\n };\n let maxLength = inputSchema.valueBlock.value.length;\n if (maxLength > 0) {\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\n maxLength = inputData.valueBlock.value.length;\n }\n }\n if (maxLength === 0) {\n return {\n verified: true,\n result: root,\n };\n }\n if ((inputData.valueBlock.value.length === 0)\n && (inputSchema.valueBlock.value.length !== 0)) {\n let _optional = true;\n for (let i = 0; i < inputSchema.valueBlock.value.length; i++)\n _optional = _optional && (inputSchema.valueBlock.value[i].optional || false);\n if (_optional) {\n return {\n verified: true,\n result: root,\n };\n }\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n root.error = \"Inconsistent object length\";\n return {\n verified: false,\n result: root,\n };\n }\n for (let i = 0; i < maxLength; i++) {\n if ((i - admission) >= inputData.valueBlock.value.length) {\n if (inputSchema.valueBlock.value[i].optional === false) {\n const _result = {\n verified: false,\n result: root,\n };\n root.error = \"Inconsistent length between ASN.1 data and schema\";\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n }\n else {\n if (inputSchema.valueBlock.value[0] instanceof Repeated) {\n result = compareSchema(root, inputData.valueBlock.value[i], inputSchema.valueBlock.value[0].value);\n if (result.verified === false) {\n if (inputSchema.valueBlock.value[0].optional)\n admission++;\n else {\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n return result;\n }\n }\n if ((NAME in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].name.length > 0)) {\n let arrayRoot = {};\n if ((LOCAL in inputSchema.valueBlock.value[0]) && (inputSchema.valueBlock.value[0].local))\n arrayRoot = inputData;\n else\n arrayRoot = root;\n if (typeof arrayRoot[inputSchema.valueBlock.value[0].name] === \"undefined\")\n arrayRoot[inputSchema.valueBlock.value[0].name] = [];\n arrayRoot[inputSchema.valueBlock.value[0].name].push(inputData.valueBlock.value[i]);\n }\n }\n else {\n result = compareSchema(root, inputData.valueBlock.value[i - admission], inputSchema.valueBlock.value[i]);\n if (result.verified === false) {\n if (inputSchema.valueBlock.value[i].optional)\n admission++;\n else {\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name)\n delete root[inputSchema.name];\n }\n return result;\n }\n }\n }\n }\n }\n if (result.verified === false) {\n const _result = {\n verified: false,\n result: root,\n };\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n return {\n verified: true,\n result: root,\n };\n }\n if (inputSchema.primitiveSchema\n && (VALUE_HEX_VIEW in inputData.valueBlock)) {\n const asn1 = localFromBER(inputData.valueBlock.valueHexView);\n if (asn1.offset === -1) {\n const _result = {\n verified: false,\n result: asn1.result,\n };\n if (inputSchema.name) {\n inputSchema.name = inputSchema.name.replace(/^\\s+|\\s+$/g, EMPTY_STRING);\n if (inputSchema.name) {\n delete root[inputSchema.name];\n _result.name = inputSchema.name;\n }\n }\n return _result;\n }\n return compareSchema(root, asn1.result, inputSchema.primitiveSchema);\n }\n return {\n verified: true,\n result: root,\n };\n}\nfunction verifySchema(inputBuffer, inputSchema) {\n if ((inputSchema instanceof Object) === false) {\n return {\n verified: false,\n result: { error: \"Wrong ASN.1 schema type\" },\n };\n }\n const asn1 = localFromBER(pvtsutils__namespace.BufferSourceConverter.toUint8Array(inputBuffer));\n if (asn1.offset === -1) {\n return {\n verified: false,\n result: asn1.result,\n };\n }\n return compareSchema(asn1.result, asn1.result, inputSchema);\n}\n\nexports.Any = Any;\nexports.BaseBlock = BaseBlock;\nexports.BaseStringBlock = BaseStringBlock;\nexports.BitString = BitString;\nexports.BmpString = BmpString;\nexports.Boolean = Boolean;\nexports.CharacterString = CharacterString;\nexports.Choice = Choice;\nexports.Constructed = Constructed;\nexports.DATE = DATE;\nexports.DEFAULT_MAX_CONTENT_LENGTH = DEFAULT_MAX_CONTENT_LENGTH;\nexports.DEFAULT_MAX_DEPTH = DEFAULT_MAX_DEPTH;\nexports.DEFAULT_MAX_NODES = DEFAULT_MAX_NODES;\nexports.DateTime = DateTime;\nexports.Duration = Duration;\nexports.EndOfContent = EndOfContent;\nexports.Enumerated = Enumerated;\nexports.GeneralString = GeneralString;\nexports.GeneralizedTime = GeneralizedTime;\nexports.GraphicString = GraphicString;\nexports.HexBlock = HexBlock;\nexports.IA5String = IA5String;\nexports.Integer = Integer;\nexports.Null = Null;\nexports.NumericString = NumericString;\nexports.ObjectIdentifier = ObjectIdentifier;\nexports.OctetString = OctetString;\nexports.Primitive = Primitive;\nexports.PrintableString = PrintableString;\nexports.RawData = RawData;\nexports.RelativeObjectIdentifier = RelativeObjectIdentifier;\nexports.Repeated = Repeated;\nexports.Sequence = Sequence;\nexports.Set = Set;\nexports.TIME = TIME;\nexports.TeletexString = TeletexString;\nexports.TimeOfDay = TimeOfDay;\nexports.UTCTime = UTCTime;\nexports.UniversalString = UniversalString;\nexports.Utf8String = Utf8String;\nexports.ValueBlock = ValueBlock;\nexports.VideotexString = VideotexString;\nexports.ViewWriter = ViewWriter;\nexports.VisibleString = VisibleString;\nexports.compareSchema = compareSchema;\nexports.fromBER = fromBER;\nexports.verifySchema = verifySchema;\n","const ARRAY_BUFFER_TAG = \"[object ArrayBuffer]\";\nconst SHARED_ARRAY_BUFFER_TAG = \"[object SharedArrayBuffer]\";\nfunction tagOf(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isDataViewConstructor(type) {\n return type === DataView || type.prototype instanceof DataView;\n}\nfunction bytesPerElement(type) {\n if (isDataViewConstructor(type)) {\n return 1;\n }\n const value = type.BYTES_PER_ELEMENT;\n return value ?? 1;\n}\nfunction isArrayBufferViewLike(value) {\n if (ArrayBuffer.isView(value)) {\n return true;\n }\n if (!value || typeof value !== \"object\") {\n return false;\n }\n const view = value;\n return typeof view.byteOffset === \"number\"\n && typeof view.byteLength === \"number\"\n && isArrayBufferLike(view.buffer);\n}\nfunction copyBytes(data) {\n const view = toUint8Array(data);\n const copy = new Uint8Array(view.byteLength);\n copy.set(view);\n return copy;\n}\nexport function isArrayBuffer(value) {\n return tagOf(value) === ARRAY_BUFFER_TAG;\n}\nexport function isSharedArrayBuffer(value) {\n return typeof SharedArrayBuffer !== \"undefined\" && tagOf(value) === SHARED_ARRAY_BUFFER_TAG;\n}\nexport function isArrayBufferLike(value) {\n return isArrayBuffer(value) || isSharedArrayBuffer(value);\n}\nexport function isArrayBufferView(value) {\n return isArrayBufferViewLike(value);\n}\nexport function isBufferSource(value) {\n return isArrayBufferLike(value) || isArrayBufferView(value);\n}\nexport function assertBufferSource(value) {\n if (!isBufferSource(value)) {\n throw new TypeError(\"Expected ArrayBuffer, SharedArrayBuffer, or ArrayBufferView\");\n }\n}\nexport function toUint8Array(data) {\n assertBufferSource(data);\n if (isArrayBufferLike(data)) {\n return new Uint8Array(data);\n }\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n}\nexport function toUint8ArrayCopy(data) {\n return copyBytes(data);\n}\nexport function toArrayBuffer(data) {\n assertBufferSource(data);\n if (isArrayBuffer(data)) {\n return data;\n }\n const buffer = new ArrayBuffer(data.byteLength);\n new Uint8Array(buffer).set(toUint8Array(data));\n return buffer;\n}\nexport function toArrayBufferLike(data) {\n assertBufferSource(data);\n if (isArrayBufferLike(data)) {\n return data;\n }\n if (data.byteOffset === 0 && data.byteLength === data.buffer.byteLength) {\n return data.buffer;\n }\n return copyBytes(data).buffer;\n}\nexport function toView(data, type) {\n assertBufferSource(data);\n if (ArrayBuffer.isView(data) && data.constructor === type) {\n return data;\n }\n const view = toUint8Array(data);\n const elementSize = bytesPerElement(type);\n if (view.byteOffset % elementSize !== 0 || view.byteLength % elementSize !== 0) {\n throw new RangeError(`Cannot create ${type.name} over unaligned byte range`);\n }\n if (isDataViewConstructor(type)) {\n return new type(view.buffer, view.byteOffset, view.byteLength);\n }\n return new type(view.buffer, view.byteOffset, view.byteLength / elementSize);\n}\nexport function toViewCopy(data, type) {\n const copy = toUint8ArrayCopy(data);\n return toView(copy, type);\n}\n","import { toUint8Array } from \"./buffer-source.js\";\nexport function equal(a, b, options = {}) {\n const left = toUint8Array(a);\n const right = toUint8Array(b);\n if (!options.constantTime && left.byteLength !== right.byteLength) {\n return false;\n }\n const length = Math.max(left.byteLength, right.byteLength);\n let diff = left.byteLength ^ right.byteLength;\n for (let i = 0; i < length; i++) {\n diff |= (left[i] ?? 0) ^ (right[i] ?? 0);\n }\n return diff === 0;\n}\n","export var AsnTypeTypes;\n(function (AsnTypeTypes) {\n AsnTypeTypes[AsnTypeTypes[\"Sequence\"] = 0] = \"Sequence\";\n AsnTypeTypes[AsnTypeTypes[\"Set\"] = 1] = \"Set\";\n AsnTypeTypes[AsnTypeTypes[\"Choice\"] = 2] = \"Choice\";\n})(AsnTypeTypes || (AsnTypeTypes = {}));\nexport var AsnPropTypes;\n(function (AsnPropTypes) {\n AsnPropTypes[AsnPropTypes[\"Any\"] = 1] = \"Any\";\n AsnPropTypes[AsnPropTypes[\"Boolean\"] = 2] = \"Boolean\";\n AsnPropTypes[AsnPropTypes[\"OctetString\"] = 3] = \"OctetString\";\n AsnPropTypes[AsnPropTypes[\"BitString\"] = 4] = \"BitString\";\n AsnPropTypes[AsnPropTypes[\"Integer\"] = 5] = \"Integer\";\n AsnPropTypes[AsnPropTypes[\"Enumerated\"] = 6] = \"Enumerated\";\n AsnPropTypes[AsnPropTypes[\"ObjectIdentifier\"] = 7] = \"ObjectIdentifier\";\n AsnPropTypes[AsnPropTypes[\"Utf8String\"] = 8] = \"Utf8String\";\n AsnPropTypes[AsnPropTypes[\"BmpString\"] = 9] = \"BmpString\";\n AsnPropTypes[AsnPropTypes[\"UniversalString\"] = 10] = \"UniversalString\";\n AsnPropTypes[AsnPropTypes[\"NumericString\"] = 11] = \"NumericString\";\n AsnPropTypes[AsnPropTypes[\"PrintableString\"] = 12] = \"PrintableString\";\n AsnPropTypes[AsnPropTypes[\"TeletexString\"] = 13] = \"TeletexString\";\n AsnPropTypes[AsnPropTypes[\"VideotexString\"] = 14] = \"VideotexString\";\n AsnPropTypes[AsnPropTypes[\"IA5String\"] = 15] = \"IA5String\";\n AsnPropTypes[AsnPropTypes[\"GraphicString\"] = 16] = \"GraphicString\";\n AsnPropTypes[AsnPropTypes[\"VisibleString\"] = 17] = \"VisibleString\";\n AsnPropTypes[AsnPropTypes[\"GeneralString\"] = 18] = \"GeneralString\";\n AsnPropTypes[AsnPropTypes[\"CharacterString\"] = 19] = \"CharacterString\";\n AsnPropTypes[AsnPropTypes[\"UTCTime\"] = 20] = \"UTCTime\";\n AsnPropTypes[AsnPropTypes[\"GeneralizedTime\"] = 21] = \"GeneralizedTime\";\n AsnPropTypes[AsnPropTypes[\"DATE\"] = 22] = \"DATE\";\n AsnPropTypes[AsnPropTypes[\"TimeOfDay\"] = 23] = \"TimeOfDay\";\n AsnPropTypes[AsnPropTypes[\"DateTime\"] = 24] = \"DateTime\";\n AsnPropTypes[AsnPropTypes[\"Duration\"] = 25] = \"Duration\";\n AsnPropTypes[AsnPropTypes[\"TIME\"] = 26] = \"TIME\";\n AsnPropTypes[AsnPropTypes[\"Null\"] = 27] = \"Null\";\n})(AsnPropTypes || (AsnPropTypes = {}));\n","import * as asn1js from \"asn1js\";\nimport { isBufferSource, toArrayBuffer, } from \"@peculiar/utils/bytes\";\nexport class BitString {\n unusedBits = 0;\n value = new ArrayBuffer(0);\n constructor(params, unusedBits = 0) {\n if (params) {\n if (typeof params === \"number\") {\n this.fromNumber(params);\n }\n else if (isBufferSource(params)) {\n this.unusedBits = unusedBits;\n this.value = toArrayBuffer(params);\n }\n else {\n throw TypeError(\"Unsupported type of 'params' argument for BitString\");\n }\n }\n }\n fromASN(asn) {\n if (!(asn instanceof asn1js.BitString)) {\n throw new TypeError(\"Argument 'asn' is not instance of ASN.1 BitString\");\n }\n this.unusedBits = asn.valueBlock.unusedBits;\n this.value = toArrayBuffer(asn.valueBlock.valueHex);\n return this;\n }\n toASN() {\n return new asn1js.BitString({\n unusedBits: this.unusedBits, valueHex: this.value,\n });\n }\n toSchema(name) {\n return new asn1js.BitString({ name });\n }\n toNumber() {\n let res = \"\";\n const uintArray = new Uint8Array(this.value);\n for (const octet of uintArray) {\n res += octet.toString(2).padStart(8, \"0\");\n }\n res = res.split(\"\").reverse().join(\"\");\n if (this.unusedBits) {\n res = res.slice(this.unusedBits).padStart(this.unusedBits, \"0\");\n }\n return parseInt(res, 2);\n }\n fromNumber(value) {\n let bits = value.toString(2);\n const octetSize = (bits.length + 7) >> 3;\n this.unusedBits = (octetSize << 3) - bits.length;\n const octets = new Uint8Array(octetSize);\n bits = bits\n .padStart(octetSize << 3, \"0\")\n .split(\"\")\n .reverse()\n .join(\"\");\n let index = 0;\n while (index < octetSize) {\n octets[index] = parseInt(bits.slice(index << 3, (index << 3) + 8), 2);\n index++;\n }\n this.value = octets.buffer;\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { isBufferSource, toArrayBuffer, } from \"@peculiar/utils/bytes\";\nexport class OctetString {\n buffer;\n get byteLength() {\n return this.buffer.byteLength;\n }\n get byteOffset() {\n return 0;\n }\n constructor(param) {\n if (typeof param === \"number\") {\n this.buffer = new ArrayBuffer(param);\n }\n else {\n if (isBufferSource(param)) {\n this.buffer = toArrayBuffer(param);\n }\n else if (Array.isArray(param)) {\n this.buffer = new Uint8Array(param).buffer;\n }\n else {\n this.buffer = new ArrayBuffer(0);\n }\n }\n }\n fromASN(asn) {\n if (!(asn instanceof asn1js.OctetString)) {\n throw new TypeError(\"Argument 'asn' is not instance of ASN.1 OctetString\");\n }\n this.buffer = toArrayBuffer(asn.valueBlock.valueHex);\n return this;\n }\n toASN() {\n return new asn1js.OctetString({ valueHex: this.buffer });\n }\n toSchema(name) {\n return new asn1js.OctetString({ name });\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { toArrayBuffer } from \"@peculiar/utils/bytes\";\nimport { AsnPropTypes } from \"./enums.js\";\nimport { OctetString } from \"./types/index.js\";\nexport const AsnAnyConverter = {\n fromASN: (value) => value instanceof asn1js.Null\n ? null\n : toArrayBuffer(value.valueBeforeDecodeView),\n toASN: (value) => {\n if (value === null) {\n return new asn1js.Null();\n }\n const schema = asn1js.fromBER(value);\n if (schema.result.error) {\n throw new Error(schema.result.error);\n }\n return schema.result;\n },\n};\nexport const AsnIntegerConverter = {\n fromASN: (value) => value.valueBlock.valueHexView.byteLength >= 4\n ? value.valueBlock.toString()\n : value.valueBlock.valueDec,\n toASN: (value) => new asn1js.Integer({ value: +value }),\n};\nexport const AsnEnumeratedConverter = {\n fromASN: (value) => value.valueBlock.valueDec,\n toASN: (value) => new asn1js.Enumerated({ value }),\n};\nexport const AsnIntegerArrayBufferConverter = {\n fromASN: (value) => toArrayBuffer(value.valueBlock.valueHexView),\n toASN: (value) => new asn1js.Integer({ valueHex: value }),\n};\nexport const AsnIntegerBigIntConverter = {\n fromASN: (value) => value.toBigInt(),\n toASN: (value) => asn1js.Integer.fromBigInt(value),\n};\nexport const AsnBitStringConverter = {\n fromASN: (value) => toArrayBuffer(value.valueBlock.valueHexView),\n toASN: (value) => new asn1js.BitString({ valueHex: value }),\n};\nexport const AsnObjectIdentifierConverter = {\n fromASN: (value) => value.valueBlock.toString(),\n toASN: (value) => new asn1js.ObjectIdentifier({ value }),\n};\nexport const AsnBooleanConverter = {\n fromASN: (value) => value.valueBlock.value,\n toASN: (value) => new asn1js.Boolean({ value }),\n};\nexport const AsnOctetStringConverter = {\n fromASN: (value) => toArrayBuffer(value.valueBlock.valueHexView),\n toASN: (value) => new asn1js.OctetString({ valueHex: value }),\n};\nexport const AsnConstructedOctetStringConverter = {\n fromASN: (value) => new OctetString(value.getValue()),\n toASN: (value) => value.toASN(),\n};\nfunction createStringConverter(Asn1Type) {\n return {\n fromASN: (value) => value.valueBlock.value,\n toASN: (value) => new Asn1Type({ value }),\n };\n}\nexport const AsnUtf8StringConverter = createStringConverter(asn1js.Utf8String);\nexport const AsnBmpStringConverter = createStringConverter(asn1js.BmpString);\nexport const AsnUniversalStringConverter = createStringConverter(asn1js.UniversalString);\nexport const AsnNumericStringConverter = createStringConverter(asn1js.NumericString);\nexport const AsnPrintableStringConverter = createStringConverter(asn1js.PrintableString);\nexport const AsnTeletexStringConverter = createStringConverter(asn1js.TeletexString);\nexport const AsnVideotexStringConverter = createStringConverter(asn1js.VideotexString);\nexport const AsnIA5StringConverter = createStringConverter(asn1js.IA5String);\nexport const AsnGraphicStringConverter = createStringConverter(asn1js.GraphicString);\nexport const AsnVisibleStringConverter = createStringConverter(asn1js.VisibleString);\nexport const AsnGeneralStringConverter = createStringConverter(asn1js.GeneralString);\nexport const AsnCharacterStringConverter = createStringConverter(asn1js.CharacterString);\nexport const AsnUTCTimeConverter = {\n fromASN: (value) => value.toDate(),\n toASN: (value) => new asn1js.UTCTime({ valueDate: value }),\n};\nexport const AsnGeneralizedTimeConverter = {\n fromASN: (value) => value.toDate(),\n toASN: (value) => new asn1js.GeneralizedTime({ valueDate: value }),\n};\nexport const AsnNullConverter = {\n fromASN: () => null,\n toASN: () => {\n return new asn1js.Null();\n },\n};\nexport function defaultConverter(type) {\n switch (type) {\n case AsnPropTypes.Any:\n return AsnAnyConverter;\n case AsnPropTypes.BitString:\n return AsnBitStringConverter;\n case AsnPropTypes.BmpString:\n return AsnBmpStringConverter;\n case AsnPropTypes.Boolean:\n return AsnBooleanConverter;\n case AsnPropTypes.CharacterString:\n return AsnCharacterStringConverter;\n case AsnPropTypes.Enumerated:\n return AsnEnumeratedConverter;\n case AsnPropTypes.GeneralString:\n return AsnGeneralStringConverter;\n case AsnPropTypes.GeneralizedTime:\n return AsnGeneralizedTimeConverter;\n case AsnPropTypes.GraphicString:\n return AsnGraphicStringConverter;\n case AsnPropTypes.IA5String:\n return AsnIA5StringConverter;\n case AsnPropTypes.Integer:\n return AsnIntegerConverter;\n case AsnPropTypes.Null:\n return AsnNullConverter;\n case AsnPropTypes.NumericString:\n return AsnNumericStringConverter;\n case AsnPropTypes.ObjectIdentifier:\n return AsnObjectIdentifierConverter;\n case AsnPropTypes.OctetString:\n return AsnOctetStringConverter;\n case AsnPropTypes.PrintableString:\n return AsnPrintableStringConverter;\n case AsnPropTypes.TeletexString:\n return AsnTeletexStringConverter;\n case AsnPropTypes.UTCTime:\n return AsnUTCTimeConverter;\n case AsnPropTypes.UniversalString:\n return AsnUniversalStringConverter;\n case AsnPropTypes.Utf8String:\n return AsnUtf8StringConverter;\n case AsnPropTypes.VideotexString:\n return AsnVideotexStringConverter;\n case AsnPropTypes.VisibleString:\n return AsnVisibleStringConverter;\n default:\n return null;\n }\n}\n","export function isConvertible(target) {\n if (typeof target === \"function\" && target.prototype) {\n if (target.prototype.toASN && target.prototype.fromASN) {\n return true;\n }\n else {\n return isConvertible(target.prototype);\n }\n }\n else {\n return !!(target && typeof target === \"object\" && \"toASN\" in target && \"fromASN\" in target);\n }\n}\nexport function isTypeOfArray(target) {\n if (target) {\n const proto = Object.getPrototypeOf(target);\n if (proto?.prototype?.constructor === Array) {\n return true;\n }\n return isTypeOfArray(proto);\n }\n return false;\n}\nexport function isArrayEqual(bytes1, bytes2) {\n if (!(bytes1 && bytes2)) {\n return false;\n }\n if (bytes1.byteLength !== bytes2.byteLength) {\n return false;\n }\n const b1 = new Uint8Array(bytes1);\n const b2 = new Uint8Array(bytes2);\n for (let i = 0; i < bytes1.byteLength; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\n","import * as asn1js from \"asn1js\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums.js\";\nimport { isConvertible } from \"./helper.js\";\nexport class AsnSchemaStorage {\n items = new WeakMap();\n has(target) {\n return this.items.has(target);\n }\n get(target, checkSchema = false) {\n const schema = this.items.get(target);\n if (!schema) {\n throw new Error(`Cannot get schema for '${target.prototype.constructor.name}' target`);\n }\n if (checkSchema && !schema.schema) {\n throw new Error(`Schema '${target.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);\n }\n return schema;\n }\n cache(target) {\n const schema = this.get(target);\n if (!schema.schema) {\n schema.schema = this.create(target, true);\n }\n }\n createDefault(target) {\n const schema = {\n type: AsnTypeTypes.Sequence, items: {},\n };\n const parentSchema = this.findParentSchema(target);\n if (parentSchema) {\n Object.assign(schema, parentSchema);\n schema.items = Object.assign({}, schema.items, parentSchema.items);\n }\n return schema;\n }\n create(target, useNames) {\n const schema = this.items.get(target) || this.createDefault(target);\n const asn1Value = [];\n for (const key in schema.items) {\n const item = schema.items[key];\n const name = useNames ? key : \"\";\n let asn1Item;\n if (typeof item.type === \"number\") {\n const Asn1TypeName = AsnPropTypes[item.type];\n const Asn1Type = asn1js[Asn1TypeName];\n if (!Asn1Type) {\n throw new Error(`Cannot get ASN1 class by name '${Asn1TypeName}'`);\n }\n asn1Item = new Asn1Type({ name });\n }\n else if (isConvertible(item.type)) {\n const instance = new item.type();\n asn1Item = instance.toSchema(name);\n }\n else if (item.optional) {\n const itemSchema = this.get(item.type);\n if (itemSchema.type === AsnTypeTypes.Choice) {\n asn1Item = new asn1js.Any({ name });\n }\n else {\n asn1Item = this.create(item.type, false);\n asn1Item.name = name;\n }\n }\n else {\n asn1Item = new asn1js.Any({ name });\n }\n const optional = !!item.optional || item.defaultValue !== undefined;\n if (item.repeated) {\n asn1Item.name = \"\";\n const Container = item.repeated === \"set\" ? asn1js.Set : asn1js.Sequence;\n asn1Item = new Container({\n name: \"\",\n value: [new asn1js.Repeated({\n name, value: asn1Item,\n })],\n });\n }\n if (item.context !== null && item.context !== undefined) {\n if (item.implicit) {\n if (typeof item.type === \"number\" || isConvertible(item.type)) {\n const Container = item.repeated ? asn1js.Constructed : asn1js.Primitive;\n asn1Value.push(new Container({\n name, optional, idBlock: {\n tagClass: 3, tagNumber: item.context,\n },\n }));\n }\n else {\n this.cache(item.type);\n const isRepeated = !!item.repeated;\n let value = !isRepeated ? this.get(item.type, true).schema : asn1Item;\n value\n = \"valueBlock\" in value\n ? value.valueBlock.value\n : value.value;\n asn1Value.push(new asn1js.Constructed({\n name: !isRepeated ? name : \"\",\n optional,\n idBlock: {\n tagClass: 3, tagNumber: item.context,\n },\n value: value,\n }));\n }\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional,\n idBlock: {\n tagClass: 3, tagNumber: item.context,\n },\n value: [asn1Item],\n }));\n }\n }\n else {\n asn1Item.optional = optional;\n asn1Value.push(asn1Item);\n }\n }\n switch (schema.type) {\n case AsnTypeTypes.Sequence:\n return new asn1js.Sequence({\n value: asn1Value, name: \"\",\n });\n case AsnTypeTypes.Set:\n return new asn1js.Set({\n value: asn1Value, name: \"\",\n });\n case AsnTypeTypes.Choice:\n return new asn1js.Choice({\n value: asn1Value, name: \"\",\n });\n default:\n throw new Error(\"Unsupported ASN1 type in use\");\n }\n }\n set(target, schema) {\n this.items.set(target, schema);\n return this;\n }\n findParentSchema(target) {\n const parent = Object.getPrototypeOf(target);\n if (parent) {\n const schema = this.items.get(parent);\n return schema || this.findParentSchema(parent);\n }\n return null;\n }\n}\n","import { AsnSchemaStorage } from \"./schema.js\";\nexport const schemaStorage = new AsnSchemaStorage();\n","import * as converters from \"./converters.js\";\nimport { AsnTypeTypes } from \"./enums.js\";\nimport { schemaStorage } from \"./storage.js\";\nexport const AsnType = (options) => (target) => {\n let schema;\n if (!schemaStorage.has(target)) {\n schema = schemaStorage.createDefault(target);\n schemaStorage.set(target, schema);\n }\n else {\n schema = schemaStorage.get(target);\n }\n Object.assign(schema, options);\n};\nexport const AsnChoiceType = () => AsnType({ type: AsnTypeTypes.Choice });\nexport const AsnSetType = (options) => AsnType({\n type: AsnTypeTypes.Set, ...options,\n});\nexport const AsnSequenceType = (options) => AsnType({\n type: AsnTypeTypes.Sequence, ...options,\n});\nexport const AsnProp = (options) => (target, propertyKey) => {\n let schema;\n if (!schemaStorage.has(target.constructor)) {\n schema = schemaStorage.createDefault(target.constructor);\n schemaStorage.set(target.constructor, schema);\n }\n else {\n schema = schemaStorage.get(target.constructor);\n }\n const copyOptions = Object.assign({}, options);\n if (typeof copyOptions.type === \"number\" && !copyOptions.converter) {\n const defaultConverter = converters.defaultConverter(options.type);\n if (!defaultConverter) {\n throw new Error(`Cannot get default converter for property '${propertyKey}' of ${target.constructor.name}`);\n }\n copyOptions.converter = defaultConverter;\n }\n copyOptions.raw = options.raw;\n schema.items[propertyKey] = copyOptions;\n};\n","export class AsnSchemaValidationError extends Error {\n schemas = [];\n}\n","import * as asn1js from \"asn1js\";\nimport { toArrayBuffer } from \"@peculiar/utils/bytes\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums.js\";\nimport * as converters from \"./converters.js\";\nimport { AsnSchemaValidationError } from \"./errors/index.js\";\nimport { isConvertible, isTypeOfArray } from \"./helper.js\";\nimport { schemaStorage } from \"./storage.js\";\nexport class AsnParser {\n static parse(data, target) {\n const asn1Parsed = asn1js.fromBER(toArrayBuffer(data));\n if (asn1Parsed.result.error) {\n throw new Error(asn1Parsed.result.error);\n }\n const res = this.fromASN(asn1Parsed.result, target);\n return res;\n }\n static fromASN(asn1Schema, target) {\n try {\n if (isConvertible(target)) {\n const value = new target();\n return value.fromASN(asn1Schema);\n }\n const schema = schemaStorage.get(target);\n schemaStorage.cache(target);\n let targetSchema = schema.schema;\n const choiceResult = this.handleChoiceTypes(asn1Schema, schema, target, targetSchema);\n if (choiceResult?.result) {\n return choiceResult.result;\n }\n if (choiceResult?.targetSchema) {\n targetSchema = choiceResult.targetSchema;\n }\n const sequenceResult = this.handleSequenceTypes(asn1Schema, schema, target, targetSchema);\n const res = new target();\n if (isTypeOfArray(target)) {\n return this.handleArrayTypes(asn1Schema, schema, target);\n }\n this.processSchemaItems(schema, sequenceResult, res);\n return res;\n }\n catch (error) {\n if (error instanceof AsnSchemaValidationError) {\n error.schemas.push(target.name);\n }\n throw error;\n }\n }\n static handleChoiceTypes(asn1Schema, schema, target, targetSchema) {\n if (asn1Schema.constructor === asn1js.Constructed\n && schema.type === AsnTypeTypes.Choice\n && asn1Schema.idBlock.tagClass === 3) {\n for (const key in schema.items) {\n const schemaItem = schema.items[key];\n if (schemaItem.context === asn1Schema.idBlock.tagNumber && schemaItem.implicit) {\n if (typeof schemaItem.type === \"function\"\n && schemaStorage.has(schemaItem.type)) {\n const fieldSchema = schemaStorage.get(schemaItem.type);\n if (fieldSchema && fieldSchema.type === AsnTypeTypes.Sequence) {\n const newSeq = new asn1js.Sequence();\n if (\"value\" in asn1Schema.valueBlock\n && Array.isArray(asn1Schema.valueBlock.value)\n && \"value\" in newSeq.valueBlock) {\n newSeq.valueBlock.value = asn1Schema.valueBlock.value;\n const fieldValue = this.fromASN(newSeq, schemaItem.type);\n const res = new target();\n res[key] = fieldValue;\n return { result: res };\n }\n }\n }\n }\n }\n }\n else if (asn1Schema.constructor === asn1js.Constructed\n && schema.type !== AsnTypeTypes.Choice) {\n const newTargetSchema = new asn1js.Constructed({\n idBlock: {\n tagClass: 3,\n tagNumber: asn1Schema.idBlock.tagNumber,\n },\n value: schema.schema.valueBlock.value,\n });\n for (const key in schema.items) {\n delete asn1Schema[key];\n }\n return { targetSchema: newTargetSchema };\n }\n return null;\n }\n static handleSequenceTypes(asn1Schema, schema, target, targetSchema) {\n if (schema.type === AsnTypeTypes.Sequence) {\n const asn1ComparedSchema = asn1js.compareSchema({}, asn1Schema, targetSchema);\n if (!asn1ComparedSchema.verified) {\n throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema.${asn1ComparedSchema.result.error ? ` ${asn1ComparedSchema.result.error}` : \"\"}`);\n }\n return asn1ComparedSchema;\n }\n else {\n const asn1ComparedSchema = asn1js.compareSchema({}, asn1Schema, targetSchema);\n if (!asn1ComparedSchema.verified) {\n throw new AsnSchemaValidationError(`Data does not match to ${target.name} ASN1 schema.${asn1ComparedSchema.result.error ? ` ${asn1ComparedSchema.result.error}` : \"\"}`);\n }\n return asn1ComparedSchema;\n }\n }\n static processRepeatedField(asn1Elements, asn1Index, schemaItem) {\n let elementsToProcess = asn1Elements.slice(asn1Index);\n if (elementsToProcess.length === 1 && elementsToProcess[0].constructor.name === \"Sequence\") {\n const seq = elementsToProcess[0];\n if (seq.valueBlock && seq.valueBlock.value && Array.isArray(seq.valueBlock.value)) {\n elementsToProcess = seq.valueBlock.value;\n }\n }\n if (typeof schemaItem.type === \"number\") {\n const converter = converters.defaultConverter(schemaItem.type);\n if (!converter)\n throw new Error(`No converter for ASN.1 type ${schemaItem.type}`);\n return elementsToProcess\n .filter((el) => el && el.valueBlock)\n .map((el) => {\n try {\n return converter.fromASN(el);\n }\n catch {\n return undefined;\n }\n })\n .filter((v) => v !== undefined);\n }\n else {\n return elementsToProcess\n .filter((el) => el && el.valueBlock)\n .map((el) => {\n try {\n return this.fromASN(el, schemaItem.type);\n }\n catch {\n return undefined;\n }\n })\n .filter((v) => v !== undefined);\n }\n }\n static processPrimitiveField(asn1Element, schemaItem) {\n const converter = converters.defaultConverter(schemaItem.type);\n if (!converter)\n throw new Error(`No converter for ASN.1 type ${schemaItem.type}`);\n return converter.fromASN(asn1Element);\n }\n static isOptionalChoiceField(schemaItem) {\n return (schemaItem.optional\n && typeof schemaItem.type === \"function\"\n && schemaStorage.has(schemaItem.type)\n && schemaStorage.get(schemaItem.type).type === AsnTypeTypes.Choice);\n }\n static processOptionalChoiceField(asn1Element, schemaItem) {\n try {\n const value = this.fromASN(asn1Element, schemaItem.type);\n return {\n processed: true, value,\n };\n }\n catch (err) {\n if (err instanceof AsnSchemaValidationError\n && /Wrong values for Choice type/.test(err.message)) {\n return { processed: false };\n }\n throw err;\n }\n }\n static handleArrayTypes(asn1Schema, schema, target) {\n if (!(\"value\" in asn1Schema.valueBlock && Array.isArray(asn1Schema.valueBlock.value))) {\n throw new Error(\"Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.\");\n }\n const itemType = schema.itemType;\n if (typeof itemType === \"number\") {\n const converter = converters.defaultConverter(itemType);\n if (!converter) {\n throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);\n }\n return target.from(asn1Schema.valueBlock.value, (element) => converter.fromASN(element));\n }\n else {\n return target.from(asn1Schema.valueBlock.value, (element) => this.fromASN(element, itemType));\n }\n }\n static processSchemaItems(schema, asn1ComparedSchema, res) {\n for (const key in schema.items) {\n const asn1SchemaValue = asn1ComparedSchema.result[key];\n if (!asn1SchemaValue) {\n continue;\n }\n const schemaItem = schema.items[key];\n const schemaItemType = schemaItem.type;\n let parsedValue;\n if (typeof schemaItemType === \"number\" || isConvertible(schemaItemType)) {\n parsedValue = this.processPrimitiveSchemaItem(asn1SchemaValue, schemaItem, schemaItemType);\n }\n else {\n parsedValue = this.processComplexSchemaItem(asn1SchemaValue, schemaItem, schemaItemType);\n }\n if (parsedValue\n && typeof parsedValue === \"object\"\n && \"value\" in parsedValue\n && \"raw\" in parsedValue) {\n res[key] = parsedValue.value;\n res[`${key}Raw`] = parsedValue.raw;\n }\n else {\n res[key] = parsedValue;\n }\n }\n }\n static processPrimitiveSchemaItem(asn1SchemaValue, schemaItem, schemaItemType) {\n const converter = schemaItem.converter\n ?? (isConvertible(schemaItemType)\n ? new schemaItemType()\n : null);\n if (!converter) {\n throw new Error(\"Converter is empty\");\n }\n if (schemaItem.repeated) {\n return this.processRepeatedPrimitiveItem(asn1SchemaValue, schemaItem, converter);\n }\n else {\n return this.processSinglePrimitiveItem(asn1SchemaValue, schemaItem, schemaItemType, converter);\n }\n }\n static processRepeatedPrimitiveItem(asn1SchemaValue, schemaItem, converter) {\n if (schemaItem.implicit) {\n const Container = schemaItem.repeated === \"sequence\" ? asn1js.Sequence : asn1js.Set;\n const newItem = new Container();\n newItem.valueBlock = asn1SchemaValue.valueBlock;\n const newItemAsn = asn1js.fromBER(newItem.toBER(false));\n if (newItemAsn.offset === -1) {\n throw new Error(`Cannot parse the child item. ${newItemAsn.result.error}`);\n }\n if (!(\"value\" in newItemAsn.result.valueBlock\n && Array.isArray(newItemAsn.result.valueBlock.value))) {\n throw new Error(\"Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.\");\n }\n const value = newItemAsn.result.valueBlock.value;\n return Array.from(value, (element) => converter.fromASN(element));\n }\n else {\n return Array.from(asn1SchemaValue, (element) => converter.fromASN(element));\n }\n }\n static processSinglePrimitiveItem(asn1SchemaValue, schemaItem, schemaItemType, converter) {\n let value = asn1SchemaValue;\n if (schemaItem.implicit) {\n let newItem;\n if (isConvertible(schemaItemType)) {\n newItem = new schemaItemType().toSchema(\"\");\n }\n else {\n const Asn1TypeName = AsnPropTypes[schemaItemType];\n const Asn1Type = asn1js[Asn1TypeName];\n if (!Asn1Type) {\n throw new Error(`Cannot get '${Asn1TypeName}' class from asn1js module`);\n }\n newItem = new Asn1Type();\n }\n newItem.valueBlock = value.valueBlock;\n value = asn1js.fromBER(newItem.toBER(false)).result;\n }\n return converter.fromASN(value);\n }\n static processComplexSchemaItem(asn1SchemaValue, schemaItem, schemaItemType) {\n if (schemaItem.repeated) {\n if (!Array.isArray(asn1SchemaValue)) {\n throw new Error(\"Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.\");\n }\n return Array.from(asn1SchemaValue, (element) => this.fromASN(element, schemaItemType));\n }\n else {\n const valueToProcess = this.handleImplicitTagging(asn1SchemaValue, schemaItem, schemaItemType);\n if (this.isOptionalChoiceField(schemaItem)) {\n try {\n return this.fromASN(valueToProcess, schemaItemType);\n }\n catch (err) {\n if (err instanceof AsnSchemaValidationError\n && /Wrong values for Choice type/.test(err.message)) {\n return undefined;\n }\n throw err;\n }\n }\n else {\n const parsedValue = this.fromASN(valueToProcess, schemaItemType);\n if (schemaItem.raw) {\n return {\n value: parsedValue,\n raw: asn1SchemaValue.valueBeforeDecodeView,\n };\n }\n return parsedValue;\n }\n }\n }\n static handleImplicitTagging(asn1SchemaValue, schemaItem, schemaItemType) {\n if (schemaItem.implicit && typeof schemaItem.context === \"number\") {\n const schema = schemaStorage.get(schemaItemType);\n if (schema.type === AsnTypeTypes.Sequence) {\n const newSeq = new asn1js.Sequence();\n if (\"value\" in asn1SchemaValue.valueBlock\n && Array.isArray(asn1SchemaValue.valueBlock.value)\n && \"value\" in newSeq.valueBlock) {\n newSeq.valueBlock.value = asn1SchemaValue.valueBlock.value;\n return newSeq;\n }\n }\n else if (schema.type === AsnTypeTypes.Set) {\n const newSet = new asn1js.Set();\n if (\"value\" in asn1SchemaValue.valueBlock\n && Array.isArray(asn1SchemaValue.valueBlock.value)\n && \"value\" in newSet.valueBlock) {\n newSet.valueBlock.value = asn1SchemaValue.valueBlock.value;\n return newSet;\n }\n }\n }\n return asn1SchemaValue;\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { toArrayBuffer } from \"@peculiar/utils/bytes\";\nimport * as converters from \"./converters.js\";\nimport { AsnPropTypes, AsnTypeTypes } from \"./enums.js\";\nimport { isConvertible, isArrayEqual } from \"./helper.js\";\nimport { schemaStorage } from \"./storage.js\";\nexport class AsnSerializer {\n static serialize(obj) {\n if (obj instanceof asn1js.BaseBlock) {\n return obj.toBER(false);\n }\n return this.toASN(obj).toBER(false);\n }\n static toASN(obj) {\n if (obj && typeof obj === \"object\" && isConvertible(obj)) {\n return obj.toASN();\n }\n if (!(obj && typeof obj === \"object\")) {\n throw new TypeError(\"Parameter 1 should be type of Object.\");\n }\n const target = obj.constructor;\n const schema = schemaStorage.get(target);\n schemaStorage.cache(target);\n let asn1Value = [];\n if (schema.itemType) {\n if (!Array.isArray(obj)) {\n throw new TypeError(\"Parameter 1 should be type of Array.\");\n }\n if (typeof schema.itemType === \"number\") {\n const converter = converters.defaultConverter(schema.itemType);\n if (!converter) {\n throw new Error(`Cannot get default converter for array item of ${target.name} ASN1 schema`);\n }\n asn1Value = obj.map((o) => converter.toASN(o));\n }\n else {\n asn1Value = obj.map((o) => this.toAsnItem({ type: schema.itemType }, \"[]\", target, o));\n }\n }\n else {\n for (const key in schema.items) {\n const schemaItem = schema.items[key];\n const objProp = obj[key];\n if (objProp === undefined\n || schemaItem.defaultValue === objProp\n || (typeof schemaItem.defaultValue === \"object\"\n && typeof objProp === \"object\"\n && isArrayEqual(this.serialize(schemaItem.defaultValue), this.serialize(objProp)))) {\n continue;\n }\n const asn1Item = AsnSerializer.toAsnItem(schemaItem, key, target, objProp);\n if (typeof schemaItem.context === \"number\") {\n if (schemaItem.implicit) {\n if (!schemaItem.repeated\n && (typeof schemaItem.type === \"number\" || isConvertible(schemaItem.type))) {\n const value = {};\n value.valueHex\n = asn1Item instanceof asn1js.Null\n ? toArrayBuffer(asn1Item.valueBeforeDecodeView)\n : asn1Item.valueBlock.toBER();\n asn1Value.push(new asn1js.Primitive({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n ...value,\n }));\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n value: asn1Item.valueBlock.value,\n }));\n }\n }\n else {\n asn1Value.push(new asn1js.Constructed({\n optional: schemaItem.optional,\n idBlock: {\n tagClass: 3,\n tagNumber: schemaItem.context,\n },\n value: [asn1Item],\n }));\n }\n }\n else if (schemaItem.repeated) {\n asn1Value = asn1Value.concat(asn1Item);\n }\n else {\n asn1Value.push(asn1Item);\n }\n }\n }\n let asnSchema;\n switch (schema.type) {\n case AsnTypeTypes.Sequence:\n asnSchema = new asn1js.Sequence({ value: asn1Value });\n break;\n case AsnTypeTypes.Set:\n asnSchema = new asn1js.Set({ value: asn1Value });\n break;\n case AsnTypeTypes.Choice:\n if (!asn1Value[0]) {\n throw new Error(`Schema '${target.name}' has wrong data. Choice cannot be empty.`);\n }\n asnSchema = asn1Value[0];\n break;\n }\n return asnSchema;\n }\n static toAsnItem(schemaItem, key, target, objProp) {\n let asn1Item;\n if (typeof schemaItem.type === \"number\") {\n const converter = schemaItem.converter;\n if (!converter) {\n throw new Error(`Property '${key}' doesn't have converter for type ${AsnPropTypes[schemaItem.type]} in schema '${target.name}'`);\n }\n if (schemaItem.repeated) {\n if (!Array.isArray(objProp)) {\n throw new TypeError(\"Parameter 'objProp' should be type of Array.\");\n }\n const items = Array.from(objProp, (element) => converter.toASN(element));\n const Container = schemaItem.repeated === \"sequence\" ? asn1js.Sequence : asn1js.Set;\n asn1Item = new Container({ value: items });\n }\n else {\n asn1Item = converter.toASN(objProp);\n }\n }\n else {\n if (schemaItem.repeated) {\n if (!Array.isArray(objProp)) {\n throw new TypeError(\"Parameter 'objProp' should be type of Array.\");\n }\n const items = Array.from(objProp, (element) => this.toASN(element));\n const Container = schemaItem.repeated === \"sequence\" ? asn1js.Sequence : asn1js.Set;\n asn1Item = new Container({ value: items });\n }\n else {\n asn1Item = this.toASN(objProp);\n }\n }\n return asn1Item;\n }\n}\n","export class AsnArray extends Array {\n constructor(items = []) {\n if (typeof items === \"number\") {\n super(items);\n }\n else {\n super();\n for (const item of items) {\n this.push(item);\n }\n }\n }\n}\n","import * as asn1js from \"asn1js\";\nimport { isBufferSource, toArrayBuffer, } from \"@peculiar/utils/bytes\";\nimport { AsnParser } from \"./parser.js\";\nimport { AsnSerializer } from \"./serializer.js\";\nexport class AsnConvert {\n static serialize(obj) {\n return AsnSerializer.serialize(obj);\n }\n static parse(data, target) {\n return AsnParser.parse(data, target);\n }\n static toString(data) {\n const buf = isBufferSource(data)\n ? toArrayBuffer(data)\n : AsnConvert.serialize(data);\n const asn = asn1js.fromBER(buf);\n if (asn.offset === -1) {\n throw new Error(`Cannot decode ASN.1 data. ${asn.result.error}`);\n }\n return asn.result.toString();\n }\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { toUint8Array } from \"../bytes/index.js\";\nconst HEX_CHARACTER_REGEX = /^[0-9a-f]$/i;\nconst COMMON_SEPARATORS = [\" \", \"\\t\", \"\\n\", \"\\r\", \":\", \"-\", \".\"];\nfunction resolveSeparators(options) {\n if (options.separators === \"none\") {\n return [];\n }\n if (!options.separators || options.separators === \"common\") {\n return COMMON_SEPARATORS;\n }\n return options.separators;\n}\nfunction validateSeparator(separator) {\n if (!separator) {\n throw new TypeError(\"Hex separators must be non-empty strings\");\n }\n}\nfunction matchSeparator(text, index, separators) {\n for (const separator of separators) {\n if (text.startsWith(separator, index)) {\n return separator;\n }\n }\n return undefined;\n}\nfunction detectCase(text) {\n const hasUpper = /[A-F]/.test(text);\n const hasLower = /[a-f]/.test(text);\n return hasUpper && !hasLower ? \"upper\" : \"lower\";\n}\nfunction detectLineSeparator(text) {\n const match = /\\r\\n|\\n/.exec(text);\n if (!match) {\n return undefined;\n }\n return match[0] === \"\\r\\n\" ? \"\\r\\n\" : \"\\n\";\n}\nfunction compactForDetection(text) {\n return text.replace(/[^0-9a-f]/gi, \"\");\n}\nfunction detectGroup(text) {\n const segments = text.match(/[0-9A-Fa-f]+|[^0-9A-Fa-f]+/g) ?? [];\n if (segments.length < 3) {\n return undefined;\n }\n const hexSegments = segments.filter((_, index) => index % 2 === 0);\n const separators = segments.filter((_, index) => index % 2 === 1);\n const separator = separators[0];\n if (!separator || separators.some((item) => item !== separator)) {\n return undefined;\n }\n if (hexSegments.some((segment) => segment.length === 0 || segment.length % 2 !== 0)) {\n return undefined;\n }\n const firstLength = hexSegments[0]?.length ?? 0;\n if (!firstLength) {\n return undefined;\n }\n if (hexSegments.slice(0, -1).some((segment) => segment.length !== firstLength)) {\n return undefined;\n }\n if ((hexSegments[hexSegments.length - 1]?.length ?? 0) > firstLength) {\n return undefined;\n }\n return {\n size: firstLength / 2,\n separator,\n };\n}\nfunction detectFormat(text) {\n const trimmed = text.trim();\n const prefix = /^0x/i.test(trimmed) ? \"0x\" : \"\";\n const body = prefix ? trimmed.slice(2) : trimmed;\n const lineSeparator = detectLineSeparator(body);\n const lines = body.split(/\\r\\n|\\n/).filter((line) => line.length > 0);\n const sampleLine = lines[0]?.trim() ?? \"\";\n const group = detectGroup(sampleLine);\n const format = {\n case: detectCase(trimmed),\n prefix,\n };\n if (group) {\n format.group = group;\n }\n if (lineSeparator && lines.length > 1) {\n const firstLineBytes = compactForDetection(lines[0] ?? \"\").length / 2;\n if (firstLineBytes > 0 && lines.slice(0, -1).every((line) => compactForDetection(line).length / 2 === firstLineBytes)) {\n format.line = {\n bytesPerLine: firstLineBytes,\n separator: lineSeparator,\n };\n }\n }\n return format;\n}\nfunction normalizeText(text, options) {\n const allowPrefix = options.allowPrefix ?? true;\n const separators = [...resolveSeparators(options)].sort((left, right) => right.length - left.length);\n for (const separator of separators) {\n validateSeparator(separator);\n }\n let working = text.trim();\n if (/^0x/i.test(working)) {\n if (!allowPrefix) {\n throw new TypeError(\"Hexadecimal text must not include a 0x prefix\");\n }\n working = working.slice(2);\n }\n let normalized = \"\";\n let lastTokenWasSeparator = false;\n for (let index = 0; index < working.length;) {\n const character = working[index] ?? \"\";\n if (HEX_CHARACTER_REGEX.test(character)) {\n normalized += character;\n lastTokenWasSeparator = false;\n index += 1;\n continue;\n }\n const separator = matchSeparator(working, index, separators);\n if (!separator) {\n throw new TypeError(\"Input is not valid hexadecimal text\");\n }\n if (options.strict && (lastTokenWasSeparator || normalized.length === 0)) {\n throw new TypeError(\"Hexadecimal text contains misplaced separators\");\n }\n lastTokenWasSeparator = true;\n index += separator.length;\n }\n if (options.strict && lastTokenWasSeparator && normalized.length > 0) {\n throw new TypeError(\"Hexadecimal text must not end with a separator\");\n }\n if (normalized.length % 2 !== 0) {\n if (!options.allowOddLength) {\n throw new TypeError(\"Hexadecimal text must contain an even number of characters\");\n }\n normalized = `0${normalized}`;\n }\n return normalized.toLowerCase();\n}\nfunction groupPairs(pairs, group) {\n if (!group) {\n return pairs.join(\"\");\n }\n if (!Number.isInteger(group.size) || group.size < 1) {\n throw new RangeError(\"Hex group size must be a positive integer\");\n }\n const chunks = [];\n for (let index = 0; index < pairs.length; index += group.size) {\n chunks.push(pairs.slice(index, index + group.size).join(\"\"));\n }\n return chunks.join(group.separator);\n}\nexport function normalize(text, options = {}) {\n return normalizeText(text, options);\n}\nexport function is(text, options = {}) {\n if (typeof text !== \"string\") {\n return false;\n }\n try {\n normalize(text, options);\n return true;\n }\n catch {\n return false;\n }\n}\nexport function encode(data, options = {}) {\n const bytes = toUint8Array(data);\n const casing = options.case ?? \"lower\";\n const pairs = Array.from(bytes, (byte) => {\n const text = byte.toString(16).padStart(2, \"0\");\n return casing === \"upper\" ? text.toUpperCase() : text;\n });\n let body = \"\";\n if (options.line) {\n const bytesPerLine = options.line.bytesPerLine;\n if (!Number.isInteger(bytesPerLine) || bytesPerLine < 1) {\n throw new RangeError(\"Hex bytesPerLine must be a positive integer\");\n }\n const separator = options.line.separator ?? \"\\n\";\n const lines = [];\n for (let index = 0; index < pairs.length; index += bytesPerLine) {\n lines.push(groupPairs(pairs.slice(index, index + bytesPerLine), options.group));\n }\n body = lines.join(separator);\n }\n else {\n body = groupPairs(pairs, options.group);\n }\n return `${options.prefix ?? \"\"}${body}`;\n}\nexport function decode(text, options = {}) {\n const normalized = normalize(text, options);\n const result = new Uint8Array(normalized.length / 2);\n for (let i = 0; i < normalized.length; i += 2) {\n result[i / 2] = Number.parseInt(normalized.slice(i, i + 2), 16);\n }\n return result;\n}\nexport function parse(text, options = {}) {\n const normalized = normalize(text, options);\n return {\n bytes: decode(normalized),\n format: detectFormat(text),\n normalized,\n };\n}\nexport function format(data, value) {\n return encode(data, value);\n}\nexport const formats = {\n compact: Object.freeze({}),\n upper: Object.freeze({ case: \"upper\" }),\n colon: Object.freeze({ group: { size: 1, separator: \":\" } }),\n colonUpper: Object.freeze({ case: \"upper\", group: { size: 1, separator: \":\" } }),\n groupsOf4: Object.freeze({ group: { size: 4, separator: \" \" } }),\n prefixed: Object.freeze({ prefix: \"0x\" }),\n};\nexport const hex = { encode, decode, format, formats, is, normalize, parse };\n","import { hex } from \"@peculiar/utils/encoding\";\nexport class IpConverter {\n static isIPv4(ip) {\n return /^(\\d{1,3}\\.){3}\\d{1,3}$/.test(ip);\n }\n static parseIPv4(ip) {\n const parts = ip.split(\".\");\n if (parts.length !== 4) {\n throw new Error(\"Invalid IPv4 address\");\n }\n return parts.map((part) => {\n const num = parseInt(part, 10);\n if (isNaN(num) || num < 0 || num > 255) {\n throw new Error(\"Invalid IPv4 address part\");\n }\n return num;\n });\n }\n static parseIPv6(ip) {\n const expandedIP = this.expandIPv6(ip);\n const parts = expandedIP.split(\":\");\n if (parts.length !== 8) {\n throw new Error(\"Invalid IPv6 address\");\n }\n return parts.reduce((bytes, part) => {\n const num = parseInt(part, 16);\n if (isNaN(num) || num < 0 || num > 0xffff) {\n throw new Error(\"Invalid IPv6 address part\");\n }\n bytes.push((num >> 8) & 0xff);\n bytes.push(num & 0xff);\n return bytes;\n }, []);\n }\n static expandIPv6(ip) {\n if (!ip.includes(\"::\")) {\n return ip;\n }\n const parts = ip.split(\"::\");\n if (parts.length > 2) {\n throw new Error(\"Invalid IPv6 address\");\n }\n const left = parts[0] ? parts[0].split(\":\") : [];\n const right = parts[1] ? parts[1].split(\":\") : [];\n const missing = 8 - (left.length + right.length);\n if (missing < 0) {\n throw new Error(\"Invalid IPv6 address\");\n }\n return [...left, ...Array(missing).fill(\"0\"), ...right].join(\":\");\n }\n static formatIPv6(bytes) {\n const parts = [];\n for (let i = 0; i < 16; i += 2) {\n parts.push(((bytes[i] << 8) | bytes[i + 1]).toString(16));\n }\n return this.compressIPv6(parts.join(\":\"));\n }\n static compressIPv6(ip) {\n const parts = ip.split(\":\");\n let longestZeroStart = -1;\n let longestZeroLength = 0;\n let currentZeroStart = -1;\n let currentZeroLength = 0;\n for (let i = 0; i < parts.length; i++) {\n if (parts[i] === \"0\") {\n if (currentZeroStart === -1) {\n currentZeroStart = i;\n }\n currentZeroLength++;\n }\n else {\n if (currentZeroLength > longestZeroLength) {\n longestZeroStart = currentZeroStart;\n longestZeroLength = currentZeroLength;\n }\n currentZeroStart = -1;\n currentZeroLength = 0;\n }\n }\n if (currentZeroLength > longestZeroLength) {\n longestZeroStart = currentZeroStart;\n longestZeroLength = currentZeroLength;\n }\n if (longestZeroLength > 1) {\n const before = parts.slice(0, longestZeroStart).join(\":\");\n const after = parts.slice(longestZeroStart + longestZeroLength).join(\":\");\n return `${before}::${after}`;\n }\n return ip;\n }\n static parseCIDR(text) {\n const [addr, prefixStr] = text.split(\"/\");\n const prefix = parseInt(prefixStr, 10);\n if (this.isIPv4(addr)) {\n if (prefix < 0 || prefix > 32) {\n throw new Error(\"Invalid IPv4 prefix length\");\n }\n return [this.parseIPv4(addr), prefix];\n }\n else {\n if (prefix < 0 || prefix > 128) {\n throw new Error(\"Invalid IPv6 prefix length\");\n }\n return [this.parseIPv6(addr), prefix];\n }\n }\n static decodeIP(value) {\n if (value.length === 64 && parseInt(value, 16) === 0) {\n return \"::/0\";\n }\n if (value.length !== 16) {\n return value;\n }\n const mask = parseInt(value.slice(8), 16)\n .toString(2)\n .split(\"\")\n .reduce((a, k) => a + +k, 0);\n let ip = value.slice(0, 8).replace(/(.{2})/g, (match) => `${parseInt(match, 16)}.`);\n ip = ip.slice(0, -1);\n return `${ip}/${mask}`;\n }\n static toString(buf) {\n const uint8 = new Uint8Array(buf);\n if (uint8.length === 4) {\n return Array.from(uint8).join(\".\");\n }\n if (uint8.length === 16) {\n return this.formatIPv6(uint8);\n }\n if (uint8.length === 8 || uint8.length === 32) {\n const half = uint8.length / 2;\n const addrBytes = uint8.slice(0, half);\n const maskBytes = uint8.slice(half);\n const isAllZeros = uint8.every((byte) => byte === 0);\n if (isAllZeros) {\n return uint8.length === 8 ? \"0.0.0.0/0\" : \"::/0\";\n }\n const prefixLen = maskBytes.reduce((a, b) => a + (b.toString(2).match(/1/g) || []).length, 0);\n if (uint8.length === 8) {\n const addrStr = Array.from(addrBytes).join(\".\");\n return `${addrStr}/${prefixLen}`;\n }\n else {\n const addrStr = this.formatIPv6(addrBytes);\n return `${addrStr}/${prefixLen}`;\n }\n }\n return this.decodeIP(hex.encode(buf));\n }\n static fromString(text) {\n if (text.includes(\"/\")) {\n const [addr, prefix] = this.parseCIDR(text);\n const maskBytes = new Uint8Array(addr.length);\n let bitsLeft = prefix;\n for (let i = 0; i < maskBytes.length; i++) {\n if (bitsLeft >= 8) {\n maskBytes[i] = 0xff;\n bitsLeft -= 8;\n }\n else if (bitsLeft > 0) {\n maskBytes[i] = 0xff << (8 - bitsLeft);\n bitsLeft = 0;\n }\n }\n const out = new Uint8Array(addr.length * 2);\n out.set(addr, 0);\n out.set(maskBytes, addr.length);\n return out.buffer;\n }\n const bytes = this.isIPv4(text) ? this.parseIPv4(text) : this.parseIPv6(text);\n return new Uint8Array(bytes).buffer;\n }\n}\n","var RelativeDistinguishedName_1, RDNSequence_1, Name_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnArray, } from \"@peculiar/asn1-schema\";\nimport { hex } from \"@peculiar/utils/encoding\";\nlet DirectoryString = class DirectoryString {\n teletexString;\n printableString;\n universalString;\n utf8String;\n bmpString;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n toString() {\n return (this.bmpString\n || this.printableString\n || this.teletexString\n || this.universalString\n || this.utf8String\n || \"\");\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.TeletexString })\n], DirectoryString.prototype, \"teletexString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.PrintableString })\n], DirectoryString.prototype, \"printableString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.UniversalString })\n], DirectoryString.prototype, \"universalString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Utf8String })\n], DirectoryString.prototype, \"utf8String\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BmpString })\n], DirectoryString.prototype, \"bmpString\", void 0);\nDirectoryString = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], DirectoryString);\nexport { DirectoryString };\nlet AttributeValue = class AttributeValue extends DirectoryString {\n ia5String;\n anyValue;\n constructor(params = {}) {\n super(params);\n Object.assign(this, params);\n }\n toString() {\n return this.ia5String || (this.anyValue ? hex.encode(this.anyValue) : super.toString());\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String })\n], AttributeValue.prototype, \"ia5String\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], AttributeValue.prototype, \"anyValue\", void 0);\nAttributeValue = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], AttributeValue);\nexport { AttributeValue };\nexport class AttributeTypeAndValue {\n type = \"\";\n value = new AttributeValue();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], AttributeTypeAndValue.prototype, \"type\", void 0);\n__decorate([\n AsnProp({ type: AttributeValue })\n], AttributeTypeAndValue.prototype, \"value\", void 0);\nlet RelativeDistinguishedName = RelativeDistinguishedName_1 = class RelativeDistinguishedName extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, RelativeDistinguishedName_1.prototype);\n }\n};\nRelativeDistinguishedName = RelativeDistinguishedName_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Set, itemType: AttributeTypeAndValue,\n })\n], RelativeDistinguishedName);\nexport { RelativeDistinguishedName };\nlet RDNSequence = RDNSequence_1 = class RDNSequence extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, RDNSequence_1.prototype);\n }\n};\nRDNSequence = RDNSequence_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: RelativeDistinguishedName,\n })\n], RDNSequence);\nexport { RDNSequence };\nlet Name = Name_1 = class Name extends RDNSequence {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, Name_1.prototype);\n }\n};\nName = Name_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], Name);\nexport { Name };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnOctetStringConverter, } from \"@peculiar/asn1-schema\";\nimport { IpConverter } from \"./ip_converter.js\";\nimport { DirectoryString, Name } from \"./name.js\";\nexport const AsnIpConverter = {\n fromASN: (value) => IpConverter.toString(AsnOctetStringConverter.fromASN(value)),\n toASN: (value) => AsnOctetStringConverter.toASN(IpConverter.fromString(value)),\n};\nexport class OtherName {\n typeId = \"\";\n value = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], OtherName.prototype, \"typeId\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any, context: 0,\n })\n], OtherName.prototype, \"value\", void 0);\nexport class EDIPartyName {\n nameAssigner;\n partyName = new DirectoryString();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: DirectoryString, optional: true, context: 0, implicit: true,\n })\n], EDIPartyName.prototype, \"nameAssigner\", void 0);\n__decorate([\n AsnProp({\n type: DirectoryString, context: 1, implicit: true,\n })\n], EDIPartyName.prototype, \"partyName\", void 0);\nlet GeneralName = class GeneralName {\n otherName;\n rfc822Name;\n dNSName;\n x400Address;\n directoryName;\n ediPartyName;\n uniformResourceIdentifier;\n iPAddress;\n registeredID;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: OtherName, context: 0, implicit: true,\n })\n], GeneralName.prototype, \"otherName\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.IA5String, context: 1, implicit: true,\n })\n], GeneralName.prototype, \"rfc822Name\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.IA5String, context: 2, implicit: true,\n })\n], GeneralName.prototype, \"dNSName\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any, context: 3, implicit: true,\n })\n], GeneralName.prototype, \"x400Address\", void 0);\n__decorate([\n AsnProp({\n type: Name, context: 4, implicit: false,\n })\n], GeneralName.prototype, \"directoryName\", void 0);\n__decorate([\n AsnProp({\n type: EDIPartyName, context: 5,\n })\n], GeneralName.prototype, \"ediPartyName\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.IA5String, context: 6, implicit: true,\n })\n], GeneralName.prototype, \"uniformResourceIdentifier\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.OctetString,\n context: 7,\n implicit: true,\n converter: AsnIpConverter,\n })\n], GeneralName.prototype, \"iPAddress\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.ObjectIdentifier, context: 8, implicit: true,\n })\n], GeneralName.prototype, \"registeredID\", void 0);\nGeneralName = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], GeneralName);\nexport { GeneralName };\n","export const id_pkix = \"1.3.6.1.5.5.7\";\nexport const id_pe = `${id_pkix}.1`;\nexport const id_qt = `${id_pkix}.2`;\nexport const id_kp = `${id_pkix}.3`;\nexport const id_ad = `${id_pkix}.48`;\nexport const id_qt_csp = `${id_qt}.1`;\nexport const id_qt_unotice = `${id_qt}.2`;\nexport const id_ad_ocsp = `${id_ad}.1`;\nexport const id_ad_caIssuers = `${id_ad}.2`;\nexport const id_ad_timeStamping = `${id_ad}.3`;\nexport const id_ad_caRepository = `${id_ad}.5`;\nexport const id_ce = \"2.5.29\";\n","var AuthorityInfoAccessSyntax_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"../general_name.js\";\nimport { id_pe } from \"../object_identifiers.js\";\nexport const id_pe_authorityInfoAccess = `${id_pe}.1`;\nexport class AccessDescription {\n accessMethod = \"\";\n accessLocation = new GeneralName();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], AccessDescription.prototype, \"accessMethod\", void 0);\n__decorate([\n AsnProp({ type: GeneralName })\n], AccessDescription.prototype, \"accessLocation\", void 0);\nlet AuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax_1 = class AuthorityInfoAccessSyntax extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, AuthorityInfoAccessSyntax_1.prototype);\n }\n};\nAuthorityInfoAccessSyntax = AuthorityInfoAccessSyntax_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: AccessDescription,\n })\n], AuthorityInfoAccessSyntax);\nexport { AuthorityInfoAccessSyntax };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, OctetString, } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"../general_name.js\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_authorityKeyIdentifier = `${id_ce}.35`;\nexport class KeyIdentifier extends OctetString {\n}\nexport class AuthorityKeyIdentifier {\n keyIdentifier;\n authorityCertIssuer;\n authorityCertSerialNumber;\n constructor(params = {}) {\n if (params) {\n Object.assign(this, params);\n }\n }\n}\n__decorate([\n AsnProp({\n type: KeyIdentifier, context: 0, optional: true, implicit: true,\n })\n], AuthorityKeyIdentifier.prototype, \"keyIdentifier\", void 0);\n__decorate([\n AsnProp({\n type: GeneralName, context: 1, optional: true, implicit: true, repeated: \"sequence\",\n })\n], AuthorityKeyIdentifier.prototype, \"authorityCertIssuer\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n context: 2,\n optional: true,\n implicit: true,\n converter: AsnIntegerArrayBufferConverter,\n })\n], AuthorityKeyIdentifier.prototype, \"authorityCertSerialNumber\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_basicConstraints = `${id_ce}.19`;\nexport class BasicConstraints {\n cA = false;\n pathLenConstraint;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean, defaultValue: false,\n })\n], BasicConstraints.prototype, \"cA\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, optional: true,\n })\n], BasicConstraints.prototype, \"pathLenConstraint\", void 0);\n","var GeneralNames_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes, AsnArray, } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"./general_name.js\";\nlet GeneralNames = GeneralNames_1 = class GeneralNames extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, GeneralNames_1.prototype);\n }\n};\nGeneralNames = GeneralNames_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: GeneralName,\n })\n], GeneralNames);\nexport { GeneralNames };\n","var CertificateIssuer_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"../general_names.js\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_certificateIssuer = `${id_ce}.29`;\nlet CertificateIssuer = CertificateIssuer_1 = class CertificateIssuer extends GeneralNames {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, CertificateIssuer_1.prototype);\n }\n};\nCertificateIssuer = CertificateIssuer_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], CertificateIssuer);\nexport { CertificateIssuer };\n","var CertificatePolicies_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnArray, } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_certificatePolicies = `${id_ce}.32`;\nexport const id_ce_certificatePolicies_anyPolicy = `${id_ce_certificatePolicies}.0`;\nlet DisplayText = class DisplayText {\n ia5String;\n visibleString;\n bmpString;\n utf8String;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n toString() {\n return this.ia5String || this.visibleString || this.bmpString || this.utf8String || \"\";\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String })\n], DisplayText.prototype, \"ia5String\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.VisibleString })\n], DisplayText.prototype, \"visibleString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BmpString })\n], DisplayText.prototype, \"bmpString\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Utf8String })\n], DisplayText.prototype, \"utf8String\", void 0);\nDisplayText = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], DisplayText);\nexport { DisplayText };\nexport class NoticeReference {\n organization = new DisplayText();\n noticeNumbers = [];\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: DisplayText })\n], NoticeReference.prototype, \"organization\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, repeated: \"sequence\",\n })\n], NoticeReference.prototype, \"noticeNumbers\", void 0);\nexport class UserNotice {\n noticeRef;\n explicitText;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: NoticeReference, optional: true,\n })\n], UserNotice.prototype, \"noticeRef\", void 0);\n__decorate([\n AsnProp({\n type: DisplayText, optional: true,\n })\n], UserNotice.prototype, \"explicitText\", void 0);\nlet Qualifier = class Qualifier {\n cPSuri;\n userNotice;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.IA5String })\n], Qualifier.prototype, \"cPSuri\", void 0);\n__decorate([\n AsnProp({ type: UserNotice })\n], Qualifier.prototype, \"userNotice\", void 0);\nQualifier = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], Qualifier);\nexport { Qualifier };\nexport class PolicyQualifierInfo {\n policyQualifierId = \"\";\n qualifier = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], PolicyQualifierInfo.prototype, \"policyQualifierId\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], PolicyQualifierInfo.prototype, \"qualifier\", void 0);\nexport class PolicyInformation {\n policyIdentifier = \"\";\n policyQualifiers;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], PolicyInformation.prototype, \"policyIdentifier\", void 0);\n__decorate([\n AsnProp({\n type: PolicyQualifierInfo, repeated: \"sequence\", optional: true,\n })\n], PolicyInformation.prototype, \"policyQualifiers\", void 0);\nlet CertificatePolicies = CertificatePolicies_1 = class CertificatePolicies extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, CertificatePolicies_1.prototype);\n }\n};\nCertificatePolicies = CertificatePolicies_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: PolicyInformation,\n })\n], CertificatePolicies);\nexport { CertificatePolicies };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_cRLNumber = `${id_ce}.20`;\nlet CRLNumber = class CRLNumber {\n value;\n constructor(value = 0) {\n this.value = value;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], CRLNumber.prototype, \"value\", void 0);\nCRLNumber = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], CRLNumber);\nexport { CRLNumber };\n","import { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nimport { CRLNumber } from \"./crl_number.js\";\nexport const id_ce_deltaCRLIndicator = `${id_ce}.27`;\nlet BaseCRLNumber = class BaseCRLNumber extends CRLNumber {\n};\nBaseCRLNumber = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], BaseCRLNumber);\nexport { BaseCRLNumber };\n","var CRLDistributionPoints_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnType, AsnTypeTypes, AsnArray, BitString, } from \"@peculiar/asn1-schema\";\nimport { RelativeDistinguishedName } from \"../name.js\";\nimport { GeneralName } from \"../general_name.js\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_cRLDistributionPoints = `${id_ce}.31`;\nexport var ReasonFlags;\n(function (ReasonFlags) {\n ReasonFlags[ReasonFlags[\"unused\"] = 1] = \"unused\";\n ReasonFlags[ReasonFlags[\"keyCompromise\"] = 2] = \"keyCompromise\";\n ReasonFlags[ReasonFlags[\"cACompromise\"] = 4] = \"cACompromise\";\n ReasonFlags[ReasonFlags[\"affiliationChanged\"] = 8] = \"affiliationChanged\";\n ReasonFlags[ReasonFlags[\"superseded\"] = 16] = \"superseded\";\n ReasonFlags[ReasonFlags[\"cessationOfOperation\"] = 32] = \"cessationOfOperation\";\n ReasonFlags[ReasonFlags[\"certificateHold\"] = 64] = \"certificateHold\";\n ReasonFlags[ReasonFlags[\"privilegeWithdrawn\"] = 128] = \"privilegeWithdrawn\";\n ReasonFlags[ReasonFlags[\"aACompromise\"] = 256] = \"aACompromise\";\n})(ReasonFlags || (ReasonFlags = {}));\nexport class Reason extends BitString {\n toJSON() {\n const res = [];\n const flags = this.toNumber();\n if (flags & ReasonFlags.aACompromise) {\n res.push(\"aACompromise\");\n }\n if (flags & ReasonFlags.affiliationChanged) {\n res.push(\"affiliationChanged\");\n }\n if (flags & ReasonFlags.cACompromise) {\n res.push(\"cACompromise\");\n }\n if (flags & ReasonFlags.certificateHold) {\n res.push(\"certificateHold\");\n }\n if (flags & ReasonFlags.cessationOfOperation) {\n res.push(\"cessationOfOperation\");\n }\n if (flags & ReasonFlags.keyCompromise) {\n res.push(\"keyCompromise\");\n }\n if (flags & ReasonFlags.privilegeWithdrawn) {\n res.push(\"privilegeWithdrawn\");\n }\n if (flags & ReasonFlags.superseded) {\n res.push(\"superseded\");\n }\n if (flags & ReasonFlags.unused) {\n res.push(\"unused\");\n }\n return res;\n }\n toString() {\n return `[${this.toJSON().join(\", \")}]`;\n }\n}\nlet DistributionPointName = class DistributionPointName {\n fullName;\n nameRelativeToCRLIssuer;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: GeneralName, context: 0, repeated: \"sequence\", implicit: true,\n })\n], DistributionPointName.prototype, \"fullName\", void 0);\n__decorate([\n AsnProp({\n type: RelativeDistinguishedName, context: 1, implicit: true,\n })\n], DistributionPointName.prototype, \"nameRelativeToCRLIssuer\", void 0);\nDistributionPointName = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], DistributionPointName);\nexport { DistributionPointName };\nexport class DistributionPoint {\n distributionPoint;\n reasons;\n cRLIssuer;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: DistributionPointName, context: 0, optional: true,\n })\n], DistributionPoint.prototype, \"distributionPoint\", void 0);\n__decorate([\n AsnProp({\n type: Reason, context: 1, optional: true, implicit: true,\n })\n], DistributionPoint.prototype, \"reasons\", void 0);\n__decorate([\n AsnProp({\n type: GeneralName, context: 2, optional: true, repeated: \"sequence\", implicit: true,\n })\n], DistributionPoint.prototype, \"cRLIssuer\", void 0);\nlet CRLDistributionPoints = CRLDistributionPoints_1 = class CRLDistributionPoints extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, CRLDistributionPoints_1.prototype);\n }\n};\nCRLDistributionPoints = CRLDistributionPoints_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: DistributionPoint,\n })\n], CRLDistributionPoints);\nexport { CRLDistributionPoints };\n","var FreshestCRL_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nimport { CRLDistributionPoints, DistributionPoint } from \"./crl_distribution_points.js\";\nexport const id_ce_freshestCRL = `${id_ce}.46`;\nlet FreshestCRL = FreshestCRL_1 = class FreshestCRL extends CRLDistributionPoints {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, FreshestCRL_1.prototype);\n }\n};\nFreshestCRL = FreshestCRL_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: DistributionPoint,\n })\n], FreshestCRL);\nexport { FreshestCRL };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nimport { DistributionPointName, Reason } from \"./crl_distribution_points.js\";\nexport const id_ce_issuingDistributionPoint = `${id_ce}.28`;\nexport class IssuingDistributionPoint {\n static ONLY = false;\n distributionPoint;\n onlyContainsUserCerts = IssuingDistributionPoint.ONLY;\n onlyContainsCACerts = IssuingDistributionPoint.ONLY;\n onlySomeReasons;\n indirectCRL = IssuingDistributionPoint.ONLY;\n onlyContainsAttributeCerts = IssuingDistributionPoint.ONLY;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: DistributionPointName, context: 0, optional: true,\n })\n], IssuingDistributionPoint.prototype, \"distributionPoint\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n context: 1,\n defaultValue: IssuingDistributionPoint.ONLY,\n implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"onlyContainsUserCerts\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n context: 2,\n defaultValue: IssuingDistributionPoint.ONLY,\n implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"onlyContainsCACerts\", void 0);\n__decorate([\n AsnProp({\n type: Reason, context: 3, optional: true, implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"onlySomeReasons\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n context: 4,\n defaultValue: IssuingDistributionPoint.ONLY,\n implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"indirectCRL\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n context: 5,\n defaultValue: IssuingDistributionPoint.ONLY,\n implicit: true,\n })\n], IssuingDistributionPoint.prototype, \"onlyContainsAttributeCerts\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_cRLReasons = `${id_ce}.21`;\nexport var CRLReasons;\n(function (CRLReasons) {\n CRLReasons[CRLReasons[\"unspecified\"] = 0] = \"unspecified\";\n CRLReasons[CRLReasons[\"keyCompromise\"] = 1] = \"keyCompromise\";\n CRLReasons[CRLReasons[\"cACompromise\"] = 2] = \"cACompromise\";\n CRLReasons[CRLReasons[\"affiliationChanged\"] = 3] = \"affiliationChanged\";\n CRLReasons[CRLReasons[\"superseded\"] = 4] = \"superseded\";\n CRLReasons[CRLReasons[\"cessationOfOperation\"] = 5] = \"cessationOfOperation\";\n CRLReasons[CRLReasons[\"certificateHold\"] = 6] = \"certificateHold\";\n CRLReasons[CRLReasons[\"removeFromCRL\"] = 8] = \"removeFromCRL\";\n CRLReasons[CRLReasons[\"privilegeWithdrawn\"] = 9] = \"privilegeWithdrawn\";\n CRLReasons[CRLReasons[\"aACompromise\"] = 10] = \"aACompromise\";\n})(CRLReasons || (CRLReasons = {}));\nlet CRLReason = class CRLReason {\n reason = CRLReasons.unspecified;\n constructor(reason = CRLReasons.unspecified) {\n this.reason = reason;\n }\n toJSON() {\n return CRLReasons[this.reason];\n }\n toString() {\n return this.toJSON();\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Enumerated })\n], CRLReason.prototype, \"reason\", void 0);\nCRLReason = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], CRLReason);\nexport { CRLReason };\n","var ExtendedKeyUsage_1;\nimport { __decorate } from \"tslib\";\nimport { AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { id_ce, id_kp } from \"../object_identifiers.js\";\nexport const id_ce_extKeyUsage = `${id_ce}.37`;\nlet ExtendedKeyUsage = ExtendedKeyUsage_1 = class ExtendedKeyUsage extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, ExtendedKeyUsage_1.prototype);\n }\n};\nExtendedKeyUsage = ExtendedKeyUsage_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: AsnPropTypes.ObjectIdentifier,\n })\n], ExtendedKeyUsage);\nexport { ExtendedKeyUsage };\nexport const anyExtendedKeyUsage = `${id_ce_extKeyUsage}.0`;\nexport const id_kp_serverAuth = `${id_kp}.1`;\nexport const id_kp_clientAuth = `${id_kp}.2`;\nexport const id_kp_codeSigning = `${id_kp}.3`;\nexport const id_kp_emailProtection = `${id_kp}.4`;\nexport const id_kp_timeStamping = `${id_kp}.8`;\nexport const id_kp_OCSPSigning = `${id_kp}.9`;\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_inhibitAnyPolicy = `${id_ce}.54`;\nlet InhibitAnyPolicy = class InhibitAnyPolicy {\n value;\n constructor(value = new ArrayBuffer(0)) {\n this.value = value;\n }\n};\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], InhibitAnyPolicy.prototype, \"value\", void 0);\nInhibitAnyPolicy = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], InhibitAnyPolicy);\nexport { InhibitAnyPolicy };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_invalidityDate = `${id_ce}.24`;\nlet InvalidityDate = class InvalidityDate {\n value = new Date();\n constructor(value) {\n if (value) {\n this.value = value;\n }\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], InvalidityDate.prototype, \"value\", void 0);\nInvalidityDate = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], InvalidityDate);\nexport { InvalidityDate };\n","var IssueAlternativeName_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"../general_names.js\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_issuerAltName = `${id_ce}.18`;\nlet IssueAlternativeName = IssueAlternativeName_1 = class IssueAlternativeName extends GeneralNames {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, IssueAlternativeName_1.prototype);\n }\n};\nIssueAlternativeName = IssueAlternativeName_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], IssueAlternativeName);\nexport { IssueAlternativeName };\n","import { BitString } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_keyUsage = `${id_ce}.15`;\nexport var KeyUsageFlags;\n(function (KeyUsageFlags) {\n KeyUsageFlags[KeyUsageFlags[\"digitalSignature\"] = 1] = \"digitalSignature\";\n KeyUsageFlags[KeyUsageFlags[\"nonRepudiation\"] = 2] = \"nonRepudiation\";\n KeyUsageFlags[KeyUsageFlags[\"keyEncipherment\"] = 4] = \"keyEncipherment\";\n KeyUsageFlags[KeyUsageFlags[\"dataEncipherment\"] = 8] = \"dataEncipherment\";\n KeyUsageFlags[KeyUsageFlags[\"keyAgreement\"] = 16] = \"keyAgreement\";\n KeyUsageFlags[KeyUsageFlags[\"keyCertSign\"] = 32] = \"keyCertSign\";\n KeyUsageFlags[KeyUsageFlags[\"cRLSign\"] = 64] = \"cRLSign\";\n KeyUsageFlags[KeyUsageFlags[\"encipherOnly\"] = 128] = \"encipherOnly\";\n KeyUsageFlags[KeyUsageFlags[\"decipherOnly\"] = 256] = \"decipherOnly\";\n})(KeyUsageFlags || (KeyUsageFlags = {}));\nexport class KeyUsage extends BitString {\n toJSON() {\n const flag = this.toNumber();\n const res = [];\n if (flag & KeyUsageFlags.cRLSign) {\n res.push(\"crlSign\");\n }\n if (flag & KeyUsageFlags.dataEncipherment) {\n res.push(\"dataEncipherment\");\n }\n if (flag & KeyUsageFlags.decipherOnly) {\n res.push(\"decipherOnly\");\n }\n if (flag & KeyUsageFlags.digitalSignature) {\n res.push(\"digitalSignature\");\n }\n if (flag & KeyUsageFlags.encipherOnly) {\n res.push(\"encipherOnly\");\n }\n if (flag & KeyUsageFlags.keyAgreement) {\n res.push(\"keyAgreement\");\n }\n if (flag & KeyUsageFlags.keyCertSign) {\n res.push(\"keyCertSign\");\n }\n if (flag & KeyUsageFlags.keyEncipherment) {\n res.push(\"keyEncipherment\");\n }\n if (flag & KeyUsageFlags.nonRepudiation) {\n res.push(\"nonRepudiation\");\n }\n return res;\n }\n toString() {\n return `[${this.toJSON().join(\", \")}]`;\n }\n}\n","var GeneralSubtrees_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"../general_name.js\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_nameConstraints = `${id_ce}.30`;\nexport class GeneralSubtree {\n base = new GeneralName();\n minimum = 0;\n maximum;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: GeneralName })\n], GeneralSubtree.prototype, \"base\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, context: 0, defaultValue: 0, implicit: true,\n })\n], GeneralSubtree.prototype, \"minimum\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, context: 1, optional: true, implicit: true,\n })\n], GeneralSubtree.prototype, \"maximum\", void 0);\nlet GeneralSubtrees = GeneralSubtrees_1 = class GeneralSubtrees extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, GeneralSubtrees_1.prototype);\n }\n};\nGeneralSubtrees = GeneralSubtrees_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: GeneralSubtree,\n })\n], GeneralSubtrees);\nexport { GeneralSubtrees };\nexport class NameConstraints {\n permittedSubtrees;\n excludedSubtrees;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: GeneralSubtrees, context: 0, optional: true, implicit: true,\n })\n], NameConstraints.prototype, \"permittedSubtrees\", void 0);\n__decorate([\n AsnProp({\n type: GeneralSubtrees, context: 1, optional: true, implicit: true,\n })\n], NameConstraints.prototype, \"excludedSubtrees\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_policyConstraints = `${id_ce}.36`;\nexport class PolicyConstraints {\n requireExplicitPolicy;\n inhibitPolicyMapping;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n context: 0,\n implicit: true,\n optional: true,\n converter: AsnIntegerArrayBufferConverter,\n })\n], PolicyConstraints.prototype, \"requireExplicitPolicy\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n context: 1,\n implicit: true,\n optional: true,\n converter: AsnIntegerArrayBufferConverter,\n })\n], PolicyConstraints.prototype, \"inhibitPolicyMapping\", void 0);\n","var PolicyMappings_1;\nimport { __decorate } from \"tslib\";\nimport { AsnArray, AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_policyMappings = `${id_ce}.33`;\nexport class PolicyMapping {\n issuerDomainPolicy = \"\";\n subjectDomainPolicy = \"\";\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], PolicyMapping.prototype, \"issuerDomainPolicy\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], PolicyMapping.prototype, \"subjectDomainPolicy\", void 0);\nlet PolicyMappings = PolicyMappings_1 = class PolicyMappings extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, PolicyMappings_1.prototype);\n }\n};\nPolicyMappings = PolicyMappings_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: PolicyMapping,\n })\n], PolicyMappings);\nexport { PolicyMappings };\n","var SubjectAlternativeName_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"../general_names.js\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_subjectAltName = `${id_ce}.17`;\nlet SubjectAlternativeName = SubjectAlternativeName_1 = class SubjectAlternativeName extends GeneralNames {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, SubjectAlternativeName_1.prototype);\n }\n};\nSubjectAlternativeName = SubjectAlternativeName_1 = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], SubjectAlternativeName);\nexport { SubjectAlternativeName };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nexport class Attribute {\n type = \"\";\n values = [];\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], Attribute.prototype, \"type\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any, repeated: \"set\",\n })\n], Attribute.prototype, \"values\", void 0);\n","var SubjectDirectoryAttributes_1;\nimport { __decorate } from \"tslib\";\nimport { AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { Attribute } from \"../attribute.js\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_subjectDirectoryAttributes = `${id_ce}.9`;\nlet SubjectDirectoryAttributes = SubjectDirectoryAttributes_1 = class SubjectDirectoryAttributes extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, SubjectDirectoryAttributes_1.prototype);\n }\n};\nSubjectDirectoryAttributes = SubjectDirectoryAttributes_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: Attribute,\n })\n], SubjectDirectoryAttributes);\nexport { SubjectDirectoryAttributes };\n","import { id_ce } from \"../object_identifiers.js\";\nimport { KeyIdentifier } from \"./authority_key_identifier.js\";\nexport const id_ce_subjectKeyIdentifier = `${id_ce}.14`;\nexport class SubjectKeyIdentifier extends KeyIdentifier {\n}\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { id_ce } from \"../object_identifiers.js\";\nexport const id_ce_privateKeyUsagePeriod = `${id_ce}.16`;\nexport class PrivateKeyUsagePeriod {\n notBefore;\n notAfter;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.GeneralizedTime, context: 0, implicit: true, optional: true,\n })\n], PrivateKeyUsagePeriod.prototype, \"notBefore\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.GeneralizedTime, context: 1, implicit: true, optional: true,\n })\n], PrivateKeyUsagePeriod.prototype, \"notAfter\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, BitString, } from \"@peculiar/asn1-schema\";\nexport const id_entrust_entrustVersInfo = \"1.2.840.113533.7.65.0\";\nexport var EntrustInfoFlags;\n(function (EntrustInfoFlags) {\n EntrustInfoFlags[EntrustInfoFlags[\"keyUpdateAllowed\"] = 1] = \"keyUpdateAllowed\";\n EntrustInfoFlags[EntrustInfoFlags[\"newExtensions\"] = 2] = \"newExtensions\";\n EntrustInfoFlags[EntrustInfoFlags[\"pKIXCertificate\"] = 4] = \"pKIXCertificate\";\n})(EntrustInfoFlags || (EntrustInfoFlags = {}));\nexport class EntrustInfo extends BitString {\n toJSON() {\n const res = [];\n const flags = this.toNumber();\n if (flags & EntrustInfoFlags.pKIXCertificate) {\n res.push(\"pKIXCertificate\");\n }\n if (flags & EntrustInfoFlags.newExtensions) {\n res.push(\"newExtensions\");\n }\n if (flags & EntrustInfoFlags.keyUpdateAllowed) {\n res.push(\"keyUpdateAllowed\");\n }\n return res;\n }\n toString() {\n return `[${this.toJSON().join(\", \")}]`;\n }\n}\nexport class EntrustVersionInfo {\n entrustVers = \"\";\n entrustInfoFlags = new EntrustInfo();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralString })\n], EntrustVersionInfo.prototype, \"entrustVers\", void 0);\n__decorate([\n AsnProp({ type: EntrustInfo })\n], EntrustVersionInfo.prototype, \"entrustInfoFlags\", void 0);\n","var SubjectInfoAccessSyntax_1;\nimport { __decorate } from \"tslib\";\nimport { AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { id_pe } from \"../object_identifiers.js\";\nimport { AccessDescription } from \"./authority_information_access.js\";\nexport const id_pe_subjectInfoAccess = `${id_pe}.11`;\nlet SubjectInfoAccessSyntax = SubjectInfoAccessSyntax_1 = class SubjectInfoAccessSyntax extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, SubjectInfoAccessSyntax_1.prototype);\n }\n};\nSubjectInfoAccessSyntax = SubjectInfoAccessSyntax_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: AccessDescription,\n })\n], SubjectInfoAccessSyntax);\nexport { SubjectInfoAccessSyntax };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { equal } from \"@peculiar/utils/bytes\";\nexport class AlgorithmIdentifier {\n algorithm = \"\";\n parameters;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n isEqual(data) {\n return (data instanceof AlgorithmIdentifier\n && data.algorithm == this.algorithm\n && ((data.parameters\n && this.parameters\n && equal(data.parameters, this.parameters))\n || data.parameters === this.parameters));\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], AlgorithmIdentifier.prototype, \"algorithm\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any,\n optional: true,\n })\n], AlgorithmIdentifier.prototype, \"parameters\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier.js\";\nexport class SubjectPublicKeyInfo {\n algorithm = new AlgorithmIdentifier();\n subjectPublicKey = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], SubjectPublicKeyInfo.prototype, \"algorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], SubjectPublicKeyInfo.prototype, \"subjectPublicKey\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nlet Time = class Time {\n utcTime;\n generalTime;\n constructor(time) {\n if (time) {\n if (typeof time === \"string\" || typeof time === \"number\" || time instanceof Date) {\n const date = new Date(time);\n date.setMilliseconds(0);\n if (date.getUTCFullYear() > 2049) {\n this.generalTime = date;\n }\n else {\n this.utcTime = date;\n }\n }\n else {\n Object.assign(this, time);\n }\n }\n }\n getTime() {\n const time = this.utcTime || this.generalTime;\n if (!time) {\n throw new Error(\"Cannot get time from CHOICE object\");\n }\n return time;\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.UTCTime })\n], Time.prototype, \"utcTime\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], Time.prototype, \"generalTime\", void 0);\nTime = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], Time);\nexport { Time };\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { Time } from \"./time.js\";\nexport class Validity {\n notBefore = new Time(new Date());\n notAfter = new Time(new Date());\n constructor(params) {\n if (params) {\n this.notBefore = new Time(params.notBefore);\n this.notAfter = new Time(params.notAfter);\n }\n }\n}\n__decorate([\n AsnProp({ type: Time })\n], Validity.prototype, \"notBefore\", void 0);\n__decorate([\n AsnProp({ type: Time })\n], Validity.prototype, \"notAfter\", void 0);\n","var Extensions_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, OctetString, } from \"@peculiar/asn1-schema\";\nexport class Extension {\n static CRITICAL = false;\n extnID = \"\";\n critical = Extension.CRITICAL;\n extnValue = new OctetString();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], Extension.prototype, \"extnID\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean,\n defaultValue: Extension.CRITICAL,\n })\n], Extension.prototype, \"critical\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], Extension.prototype, \"extnValue\", void 0);\nlet Extensions = Extensions_1 = class Extensions extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, Extensions_1.prototype);\n }\n};\nExtensions = Extensions_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: Extension,\n })\n], Extensions);\nexport { Extensions };\n","export var Version;\n(function (Version) {\n Version[Version[\"v1\"] = 0] = \"v1\";\n Version[Version[\"v2\"] = 1] = \"v2\";\n Version[Version[\"v3\"] = 2] = \"v3\";\n})(Version || (Version = {}));\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier.js\";\nimport { Name } from \"./name.js\";\nimport { SubjectPublicKeyInfo } from \"./subject_public_key_info.js\";\nimport { Validity } from \"./validity.js\";\nimport { Extensions } from \"./extension.js\";\nimport { Version, } from \"./types.js\";\nexport class TBSCertificate {\n version = Version.v1;\n serialNumber = new ArrayBuffer(0);\n signature = new AlgorithmIdentifier();\n issuer = new Name();\n validity = new Validity();\n subject = new Name();\n subjectPublicKeyInfo = new SubjectPublicKeyInfo();\n issuerUniqueID;\n subjectUniqueID;\n extensions;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n context: 0,\n defaultValue: Version.v1,\n })\n], TBSCertificate.prototype, \"version\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer,\n converter: AsnIntegerArrayBufferConverter,\n })\n], TBSCertificate.prototype, \"serialNumber\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], TBSCertificate.prototype, \"signature\", void 0);\n__decorate([\n AsnProp({ type: Name })\n], TBSCertificate.prototype, \"issuer\", void 0);\n__decorate([\n AsnProp({ type: Validity })\n], TBSCertificate.prototype, \"validity\", void 0);\n__decorate([\n AsnProp({ type: Name })\n], TBSCertificate.prototype, \"subject\", void 0);\n__decorate([\n AsnProp({ type: SubjectPublicKeyInfo })\n], TBSCertificate.prototype, \"subjectPublicKeyInfo\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.BitString,\n context: 1,\n implicit: true,\n optional: true,\n })\n], TBSCertificate.prototype, \"issuerUniqueID\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.BitString, context: 2, implicit: true, optional: true,\n })\n], TBSCertificate.prototype, \"subjectUniqueID\", void 0);\n__decorate([\n AsnProp({\n type: Extensions, context: 3, optional: true,\n })\n], TBSCertificate.prototype, \"extensions\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier.js\";\nimport { TBSCertificate } from \"./tbs_certificate.js\";\nexport class Certificate {\n tbsCertificate = new TBSCertificate();\n tbsCertificateRaw;\n signatureAlgorithm = new AlgorithmIdentifier();\n signatureValue = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: TBSCertificate, raw: true,\n })\n], Certificate.prototype, \"tbsCertificate\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], Certificate.prototype, \"signatureAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], Certificate.prototype, \"signatureValue\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier.js\";\nimport { Name } from \"./name.js\";\nimport { Time } from \"./time.js\";\nimport { Extension } from \"./extension.js\";\nexport class RevokedCertificate {\n userCertificate = new ArrayBuffer(0);\n revocationDate = new Time();\n crlEntryExtensions;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RevokedCertificate.prototype, \"userCertificate\", void 0);\n__decorate([\n AsnProp({ type: Time })\n], RevokedCertificate.prototype, \"revocationDate\", void 0);\n__decorate([\n AsnProp({\n type: Extension, optional: true, repeated: \"sequence\",\n })\n], RevokedCertificate.prototype, \"crlEntryExtensions\", void 0);\nexport class TBSCertList {\n version;\n signature = new AlgorithmIdentifier();\n issuer = new Name();\n thisUpdate = new Time();\n nextUpdate;\n revokedCertificates;\n crlExtensions;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, optional: true,\n })\n], TBSCertList.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], TBSCertList.prototype, \"signature\", void 0);\n__decorate([\n AsnProp({ type: Name })\n], TBSCertList.prototype, \"issuer\", void 0);\n__decorate([\n AsnProp({ type: Time })\n], TBSCertList.prototype, \"thisUpdate\", void 0);\n__decorate([\n AsnProp({\n type: Time, optional: true,\n })\n], TBSCertList.prototype, \"nextUpdate\", void 0);\n__decorate([\n AsnProp({\n type: RevokedCertificate, repeated: \"sequence\", optional: true,\n })\n], TBSCertList.prototype, \"revokedCertificates\", void 0);\n__decorate([\n AsnProp({\n type: Extension, optional: true, context: 0, repeated: \"sequence\",\n })\n], TBSCertList.prototype, \"crlExtensions\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"./algorithm_identifier.js\";\nimport { TBSCertList } from \"./tbs_cert_list.js\";\nexport class CertificateList {\n tbsCertList = new TBSCertList();\n tbsCertListRaw;\n signatureAlgorithm = new AlgorithmIdentifier();\n signature = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: TBSCertList, raw: true,\n })\n], CertificateList.prototype, \"tbsCertList\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], CertificateList.prototype, \"signatureAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], CertificateList.prototype, \"signature\", void 0);\n","class F1Field {\n constructor(prime) {\n this.zero = BigInt(0);\n this.one = BigInt(1);\n this.prime = prime;\n }\n e(x) {\n if (typeof x === \"bigint\") {\n return x % this.prime;\n }\n else {\n return BigInt(x) % this.prime;\n }\n }\n add(x, y) {\n return (x + y) % this.prime;\n }\n sub(x, y) {\n return (this.prime + x - y) % this.prime;\n }\n mul(x, y) {\n return (x * y) % this.prime;\n }\n square(x) {\n return (x * x) % this.prime;\n }\n div(x, y) {\n return (x / y) % this.prime;\n }\n}\nexport { F1Field };\n","class Poseidon2 {\n constructor(params, primeField) {\n this.params = params;\n this.primeField = primeField;\n }\n getT() {\n return this.params.t;\n }\n sbox(input) {\n return input.map((x) => this.sboxP(x));\n }\n sboxP(input) {\n const input2 = this.primeField.square(input);\n if (this.params.d == 3) {\n return this.primeField.mul(input2, input);\n }\n else if (this.params.d == 5) {\n return this.primeField.mul(this.primeField.square(input2), input);\n }\n else if (this.params.d == 7) {\n return this.primeField.mul(this.primeField.square(input2), this.primeField.mul(input2, input));\n }\n else {\n throw new Error(\"Invalid d paramter, must be 3, 5 or 7\");\n }\n }\n matmulExternal(input) {\n const t = this.params.t;\n if (t == 2) {\n const sum = this.primeField.add(input[0], input[1]);\n input[0] = this.primeField.add(input[0], sum);\n input[1] = this.primeField.add(input[1], sum);\n }\n else if (t == 3) {\n const sum = this.primeField.add(this.primeField.add(input[0], input[1]), input[2]);\n input[0] = this.primeField.add(input[0], sum);\n input[1] = this.primeField.add(input[1], sum);\n input[2] = this.primeField.add(input[2], sum);\n }\n else if (t == 4 || t == 8 || t == 12 || t == 16 || t == 20 || t == 24) {\n const t4 = t / 4;\n for (let i = 0; i < t4; i++) {\n const startIndex = i * 4;\n let t_0 = input[startIndex];\n t_0 = this.primeField.add(t_0, input[startIndex + 1]);\n let t_1 = input[startIndex + 2];\n t_1 = this.primeField.add(t_1, input[startIndex + 3]);\n let t_2 = input[startIndex + 1];\n t_2 = this.primeField.add(t_2, t_2);\n t_2 = this.primeField.add(t_2, t_1);\n let t_3 = input[startIndex + 3];\n t_3 = this.primeField.add(t_3, t_3);\n t_3 = this.primeField.add(t_3, t_0);\n let t_4 = t_1;\n t_4 = this.primeField.add(t_4, t_4);\n t_4 = this.primeField.add(t_4, t_4);\n t_4 = this.primeField.add(t_4, t_3);\n let t_5 = t_0;\n t_5 = this.primeField.add(t_5, t_5);\n t_5 = this.primeField.add(t_5, t_5);\n t_5 = this.primeField.add(t_5, t_2);\n let t_6 = t_3;\n t_6 = this.primeField.add(t_6, t_5);\n let t_7 = t_2;\n t_7 = this.primeField.add(t_7, t_4);\n input[startIndex] = t_6;\n input[startIndex + 1] = t_5;\n input[startIndex + 2] = t_7;\n input[startIndex + 3] = t_4;\n }\n if (t > 4) {\n const stored = [\n this.primeField.zero,\n this.primeField.zero,\n this.primeField.zero,\n this.primeField.zero,\n ];\n for (let l = 0; l < 4; l++) {\n stored[l] = input[l];\n for (let j = 1; j < t4; j++) {\n stored[l] = this.primeField.add(stored[l], input[4 * j + l]);\n }\n }\n for (let i = 0; i < input.length; i++) {\n input[i] = this.primeField.add(input[i], stored[i % 4]);\n }\n }\n }\n else {\n throw new Error(\"Invalid t parameter, must be 2, 3, 4, 8, 12, 16, 20 or 24\");\n }\n return input;\n }\n matmulInternal(input) {\n const t = this.params.t;\n if (t == 2) {\n const sum = this.primeField.add(input[0], input[1]);\n input[0] = this.primeField.add(input[0], sum);\n input[1] = this.primeField.add(this.primeField.add(input[1], input[1]), sum);\n }\n else if (t == 3) {\n const sum = this.primeField.add(this.primeField.add(input[0], input[1]), input[2]);\n input[0] = this.primeField.add(input[0], sum);\n input[1] = this.primeField.add(input[1], sum);\n input[2] = this.primeField.add(this.primeField.add(input[2], input[2]), sum);\n }\n else if (t == 4 || t == 8 || t == 12 || t == 16 || t == 20 || t == 24) {\n let sum = input[0];\n for (let i = 1; i < t; i++) {\n sum = this.primeField.add(sum, input[i]);\n }\n for (let i = 0; i < input.length; i++) {\n input[i] = this.primeField.add(this.primeField.mul(this.params.mat_internal_diag_m_1[i], input[i]), sum);\n }\n }\n else {\n throw new Error(\"Invalid t parameter, must be 2, 3, 4, 8, 12, 16, 20 or 24\");\n }\n return input;\n }\n permute(input) {\n const t = this.params.t;\n if (input.length != t) {\n throw new Error(\"Invalid input length\");\n }\n let current_state = input;\n this.matmulExternal(current_state);\n for (let r = 0; r < this.params.rounds_f_beginning; r++) {\n current_state = this.addRc(current_state, this.params.round_constants[r]);\n current_state = this.sbox(current_state);\n this.matmulExternal(current_state);\n }\n const p_end = this.params.rounds_f_beginning + this.params.rounds_p;\n for (let r = this.params.rounds_f_beginning; r < p_end; r++) {\n current_state[0] = this.primeField.add(current_state[0], this.params.round_constants[r][0]);\n current_state[0] = this.sboxP(current_state[0]);\n this.matmulInternal(current_state);\n }\n for (let r = p_end; r < this.params.rounds; r++) {\n current_state = this.addRc(current_state, this.params.round_constants[r]);\n current_state = this.sbox(current_state);\n this.matmulExternal(current_state);\n }\n return current_state;\n }\n addRc(input, rc) {\n return input.map((a, i) => this.primeField.add(a, rc[i]));\n }\n}\nexport { Poseidon2 };\n","function getPoseidon2Params(t, d, rounds_f, rounds_p, mat_internal_diag_m_1, mat_internal, round_constants) {\n const r = rounds_f / 2;\n const rounds = rounds_f + rounds_p;\n return {\n t,\n d,\n rounds_f_beginning: r,\n rounds_p,\n rounds_f_end: r,\n rounds,\n mat_internal_diag_m_1: mat_internal_diag_m_1,\n _mat_internal: mat_internal,\n round_constants: round_constants,\n };\n}\nexport { getPoseidon2Params };\n","const MAT_DIAG4_M_1 = [\n BigInt(\"0x10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e7\"),\n BigInt(\"0x0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740b\"),\n BigInt(\"0x00544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac15\"),\n BigInt(\"0x222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428b\"),\n];\nconst MAT_INTERNAL4 = [\n [\n BigInt(\"0x10dc6e9c006ea38b04b1e03b4bd9490c0d03f98929ca1d7fb56821fd19d3b6e8\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n ],\n [\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x0c28145b6a44df3e0149b3d0a30b3bb599df9756d4dd9b84a86b38cfb45a740c\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n ],\n [\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x00544b8338791518b2c7645a50392798b21f75bb60e3596170067d00141cac16\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n ],\n [\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000001\"),\n BigInt(\"0x222c01175718386f2e2e82eb122789e352e105a3b8fa852613bc534433ee428c\"),\n ],\n];\nconst RC4 = [\n [\n BigInt(\"0x19b849f69450b06848da1d39bd5e4a4302bb86744edc26238b0878e269ed23e5\"),\n BigInt(\"0x265ddfe127dd51bd7239347b758f0a1320eb2cc7450acc1dad47f80c8dcf34d6\"),\n BigInt(\"0x199750ec472f1809e0f66a545e1e51624108ac845015c2aa3dfc36bab497d8aa\"),\n BigInt(\"0x157ff3fe65ac7208110f06a5f74302b14d743ea25067f0ffd032f787c7f1cdf8\"),\n ],\n [\n BigInt(\"0x2e49c43c4569dd9c5fd35ac45fca33f10b15c590692f8beefe18f4896ac94902\"),\n BigInt(\"0x0e35fb89981890520d4aef2b6d6506c3cb2f0b6973c24fa82731345ffa2d1f1e\"),\n BigInt(\"0x251ad47cb15c4f1105f109ae5e944f1ba9d9e7806d667ffec6fe723002e0b996\"),\n BigInt(\"0x13da07dc64d428369873e97160234641f8beb56fdd05e5f3563fa39d9c22df4e\"),\n ],\n [\n BigInt(\"0x0c009b84e650e6d23dc00c7dccef7483a553939689d350cd46e7b89055fd4738\"),\n BigInt(\"0x011f16b1c63a854f01992e3956f42d8b04eb650c6d535eb0203dec74befdca06\"),\n BigInt(\"0x0ed69e5e383a688f209d9a561daa79612f3f78d0467ad45485df07093f367549\"),\n BigInt(\"0x04dba94a7b0ce9e221acad41472b6bbe3aec507f5eb3d33f463672264c9f789b\"),\n ],\n [\n BigInt(\"0x0a3f2637d840f3a16eb094271c9d237b6036757d4bb50bf7ce732ff1d4fa28e8\"),\n BigInt(\"0x259a666f129eea198f8a1c502fdb38fa39b1f075569564b6e54a485d1182323f\"),\n BigInt(\"0x28bf7459c9b2f4c6d8e7d06a4ee3a47f7745d4271038e5157a32fdf7ede0d6a1\"),\n BigInt(\"0x0a1ca941f057037526ea200f489be8d4c37c85bbcce6a2aeec91bd6941432447\"),\n ],\n [\n BigInt(\"0x0c6f8f958be0e93053d7fd4fc54512855535ed1539f051dcb43a26fd926361cf\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x123106a93cd17578d426e8128ac9d90aa9e8a00708e296e084dd57e69caaf811\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x26e1ba52ad9285d97dd3ab52f8e840085e8fa83ff1e8f1877b074867cd2dee75\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1cb55cad7bd133de18a64c5c47b9c97cbe4d8b7bf9e095864471537e6a4ae2c5\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1dcd73e46acd8f8e0e2c7ce04bde7f6d2a53043d5060a41c7143f08e6e9055d0\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x011003e32f6d9c66f5852f05474a4def0cda294a0eb4e9b9b12b9bb4512e5574\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2b1e809ac1d10ab29ad5f20d03a57dfebadfe5903f58bafed7c508dd2287ae8c\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2539de1785b735999fb4dac35ee17ed0ef995d05ab2fc5faeaa69ae87bcec0a5\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x0c246c5a2ef8ee0126497f222b3e0a0ef4e1c3d41c86d46e43982cb11d77951d\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x192089c4974f68e95408148f7c0632edbb09e6a6ad1a1c2f3f0305f5d03b527b\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1eae0ad8ab68b2f06a0ee36eeb0d0c058529097d91096b756d8fdc2fb5a60d85\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x179190e5d0e22179e46f8282872abc88db6e2fdc0dee99e69768bd98c5d06bfb\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x29bb9e2c9076732576e9a81c7ac4b83214528f7db00f31bf6cafe794a9b3cd1c\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x225d394e42207599403efd0c2464a90d52652645882aac35b10e590e6e691e08\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x064760623c25c8cf753d238055b444532be13557451c087de09efd454b23fd59\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x10ba3a0e01df92e87f301c4b716d8a394d67f4bf42a75c10922910a78f6b5b87\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x0e070bf53f8451b24f9c6e96b0c2a801cb511bc0c242eb9d361b77693f21471c\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1b94cd61b051b04dd39755ff93821a73ccd6cb11d2491d8aa7f921014de252fb\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1d7cb39bafb8c744e148787a2e70230f9d4e917d5713bb050487b5aa7d74070b\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2ec93189bd1ab4f69117d0fe980c80ff8785c2961829f701bb74ac1f303b17db\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2db366bfdd36d277a692bb825b86275beac404a19ae07a9082ea46bd83517926\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x062100eb485db06269655cf186a68532985275428450359adc99cec6960711b8\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x0761d33c66614aaa570e7f1e8244ca1120243f92fa59e4f900c567bf41f5a59b\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x20fc411a114d13992c2705aa034e3f315d78608a0f7de4ccf7a72e494855ad0d\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x25b5c004a4bdfcb5add9ec4e9ab219ba102c67e8b3effb5fc3a30f317250bc5a\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x23b1822d278ed632a494e58f6df6f5ed038b186d8474155ad87e7dff62b37f4b\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x22734b4c5c3f9493606c4ba9012499bf0f14d13bfcfcccaa16102a29cc2f69e0\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x26c0c8fe09eb30b7e27a74dc33492347e5bdff409aa3610254413d3fad795ce5\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x070dd0ccb6bd7bbae88eac03fa1fbb26196be3083a809829bbd626df348ccad9\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x12b6595bdb329b6fb043ba78bb28c3bec2c0a6de46d8c5ad6067c4ebfd4250da\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x248d97d7f76283d63bec30e7a5876c11c06fca9b275c671c5e33d95bb7e8d729\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1a306d439d463b0816fc6fd64cc939318b45eb759ddde4aa106d15d9bd9baaaa\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x28a8f8372e3c38daced7c00421cb4621f4f1b54ddc27821b0d62d3d6ec7c56cf\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x0094975717f9a8a8bb35152f24d43294071ce320c829f388bc852183e1e2ce7e\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x04d5ee4c3aa78f7d80fde60d716480d3593f74d4f653ae83f4103246db2e8d65\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2a6cf5e9aa03d4336349ad6fb8ed2269c7bef54b8822cc76d08495c12efde187\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2304d31eaab960ba9274da43e19ddeb7f792180808fd6e43baae48d7efcba3f3\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x03fd9ac865a4b2a6d5e7009785817249bff08a7e0726fcb4e1c11d39d199f0b0\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x00b7258ded52bbda2248404d55ee5044798afc3a209193073f7954d4d63b0b64\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x159f81ada0771799ec38fca2d4bf65ebb13d3a74f3298db36272c5ca65e92d9a\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1ef90e67437fbc8550237a75bc28e3bb9000130ea25f0c5471e144cf4264431f\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1e65f838515e5ff0196b49aa41a2d2568df739bc176b08ec95a79ed82932e30d\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2b1b045def3a166cec6ce768d079ba74b18c844e570e1f826575c1068c94c33f\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x0832e5753ceb0ff6402543b1109229c165dc2d73bef715e3f1c6e07c168bb173\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x02f614e9cedfb3dc6b762ae0a37d41bab1b841c2e8b6451bc5a8e3c390b6ad16\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x0e2427d38bd46a60dd640b8e362cad967370ebb777bedff40f6a0be27e7ed705\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x0493630b7c670b6deb7c84d414e7ce79049f0ec098c3c7c50768bbe29214a53a\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x22ead100e8e482674decdab17066c5a26bb1515355d5461a3dc06cc85327cea9\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x25b3e56e655b42cdaae2626ed2554d48583f1ae35626d04de5084e0b6d2a6f16\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1e32752ada8836ef5837a6cde8ff13dbb599c336349e4c584b4fdc0a0cf6f9d0\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2fa2a871c15a387cc50f68f6f3c3455b23c00995f05078f672a9864074d412e5\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x2f569b8a9a4424c9278e1db7311e889f54ccbf10661bab7fcd18e7c7a7d83505\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x044cb455110a8fdd531ade530234c518a7df93f7332ffd2144165374b246b43d\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x227808de93906d5d420246157f2e42b191fe8c90adfe118178ddc723a5319025\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x02fcca2934e046bc623adead873579865d03781ae090ad4a8579d2e7a6800355\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x0ef915f0ac120b876abccceb344a1d36bad3f3c5ab91a8ddcbec2e060d8befac\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n BigInt(\"0x0000000000000000000000000000000000000000000000000000000000000000\"),\n ],\n [\n BigInt(\"0x1797130f4b7a3e1777eb757bc6f287f6ab0fb85f6be63b09f3b16ef2b1405d38\"),\n BigInt(\"0x0a76225dc04170ae3306c85abab59e608c7f497c20156d4d36c668555decc6e5\"),\n BigInt(\"0x1fffb9ec1992d66ba1e77a7b93209af6f8fa76d48acb664796174b5326a31a5c\"),\n BigInt(\"0x25721c4fc15a3f2853b57c338fa538d85f8fbba6c6b9c6090611889b797b9c5f\"),\n ],\n [\n BigInt(\"0x0c817fd42d5f7a41215e3d07ba197216adb4c3790705da95eb63b982bfcaf75a\"),\n BigInt(\"0x13abe3f5239915d39f7e13c2c24970b6df8cf86ce00a22002bc15866e52b5a96\"),\n BigInt(\"0x2106feea546224ea12ef7f39987a46c85c1bc3dc29bdbd7a92cd60acb4d391ce\"),\n BigInt(\"0x21ca859468a746b6aaa79474a37dab49f1ca5a28c748bc7157e1b3345bb0f959\"),\n ],\n [\n BigInt(\"0x05ccd6255c1e6f0c5cf1f0df934194c62911d14d0321662a8f1a48999e34185b\"),\n BigInt(\"0x0f0e34a64b70a626e464d846674c4c8816c4fb267fe44fe6ea28678cb09490a4\"),\n BigInt(\"0x0558531a4e25470c6157794ca36d0e9647dbfcfe350d64838f5b1a8a2de0d4bf\"),\n BigInt(\"0x09d3dca9173ed2faceea125157683d18924cadad3f655a60b72f5864961f1455\"),\n ],\n [\n BigInt(\"0x0328cbd54e8c0913493f866ed03d218bf23f92d68aaec48617d4c722e5bd4335\"),\n BigInt(\"0x2bf07216e2aff0a223a487b1a7094e07e79e7bcc9798c648ee3347dd5329d34b\"),\n BigInt(\"0x1daf345a58006b736499c583cb76c316d6f78ed6a6dffc82111e11a63fe412df\"),\n BigInt(\"0x176563472456aaa746b694c60e1823611ef39039b2edc7ff391e6f2293d2c404\"),\n ],\n];\nexport { RC4, MAT_DIAG4_M_1, MAT_INTERNAL4 };\n","import { F1Field } from \"../core/field.js\";\nimport { Poseidon2 } from \"../core/poseidon2.js\";\nimport { getPoseidon2Params } from \"../core/poseidon2params.js\";\nimport { MAT_DIAG4_M_1, MAT_INTERNAL4, RC4 } from \"./constants.js\";\nconst bn254Field = new F1Field(BigInt(\"21888242871839275222246405745257275088548364400416034343698204186575808495617\"));\nlet instance = null;\nexport function getPoseidon2BN254() {\n if (!instance) {\n instance = new Poseidon2(getPoseidon2Params(4, 5, 8, 56, MAT_DIAG4_M_1, MAT_INTERNAL4, RC4), bn254Field);\n }\n return instance;\n}\n","import { getPoseidon2BN254 } from \"./instance.js\";\nexport const F = getPoseidon2BN254().primeField;\nexport const permute = getPoseidon2BN254().permute.bind(getPoseidon2BN254());\nvar Mode;\n(function (Mode) {\n Mode[Mode[\"ABSORB\"] = 0] = \"ABSORB\";\n Mode[Mode[\"SQUEEZE\"] = 1] = \"SQUEEZE\";\n})(Mode || (Mode = {}));\nclass FieldSponge {\n constructor(domainIv = 0n) {\n this.rate = getPoseidon2BN254().getT() - 1;\n this.t = getPoseidon2BN254().getT();\n this.state = new Array(this.t).fill(0n);\n this.state[this.rate] = domainIv;\n this.cache = new Array(this.rate).fill(0n);\n this.cacheSize = 0;\n this.mode = Mode.ABSORB;\n }\n performDuplex() {\n // Zero-pad the cache\n for (let i = this.cacheSize; i < this.rate; i++) {\n this.cache[i] = 0n;\n }\n // Add cache into sponge state\n for (let i = 0; i < this.rate; i++) {\n this.state[i] = F.add(this.state[i], this.cache[i]);\n }\n this.state = permute(this.state);\n // Return rate number of elements from state\n return this.state.slice(0, this.rate);\n }\n absorb(input) {\n if (this.mode === Mode.ABSORB && this.cacheSize === this.rate) {\n this.performDuplex();\n this.cache[0] = input;\n this.cacheSize = 1;\n }\n else if (this.mode === Mode.ABSORB && this.cacheSize < this.rate) {\n this.cache[this.cacheSize] = input;\n this.cacheSize += 1;\n }\n else if (this.mode === Mode.SQUEEZE) {\n this.cache[0] = input;\n this.cacheSize = 1;\n this.mode = Mode.ABSORB;\n }\n }\n squeeze() {\n if (this.mode === Mode.SQUEEZE && this.cacheSize === 0) {\n this.mode = Mode.ABSORB;\n this.cacheSize = 0;\n }\n if (this.mode === Mode.ABSORB) {\n const newOutputElements = this.performDuplex();\n this.mode = Mode.SQUEEZE;\n for (let i = 0; i < this.rate; i++) {\n this.cache[i] = newOutputElements[i];\n }\n this.cacheSize = this.rate;\n }\n const result = this.cache[0];\n for (let i = 1; i < this.cacheSize; i++) {\n this.cache[i - 1] = this.cache[i];\n }\n this.cacheSize -= 1;\n this.cache[this.cacheSize] = 0n;\n return result;\n }\n static hashInternal(input, outLen, isVariableLength) {\n const iv = (BigInt(input.length) << BigInt(64n)) + BigInt(outLen - 1);\n const sponge = new FieldSponge(iv);\n for (let i = 0; i < input.length; i++) {\n sponge.absorb(input[i]);\n }\n if (isVariableLength) {\n sponge.absorb(1n);\n }\n const output = [];\n for (let i = 0; i < outLen; i++) {\n output.push(sponge.squeeze());\n }\n return output;\n }\n static hashFixedLength(input, outLen = 1) {\n return this.hashInternal(input, outLen, false);\n }\n static hashVariableLength(input, outLen = 1) {\n return this.hashInternal(input, outLen, true);\n }\n}\nexport function hashToField(input) {\n return FieldSponge.hashFixedLength(input)[0];\n}\n","import { getPoseidon2BN254 } from \"./instance.js\";\nexport const F = getPoseidon2BN254().primeField;\nexport const permute = getPoseidon2BN254().permute.bind(getPoseidon2BN254());\nvar Mode;\n(function (Mode) {\n Mode[Mode[\"ABSORB\"] = 0] = \"ABSORB\";\n Mode[Mode[\"SQUEEZE\"] = 1] = \"SQUEEZE\";\n})(Mode || (Mode = {}));\nclass FieldSponge {\n constructor(domainIv = 0n) {\n this.rate = getPoseidon2BN254().getT() - 1;\n this.t = getPoseidon2BN254().getT();\n this.state = new Array(this.t).fill(0n);\n this.state[this.rate] = domainIv;\n this.cache = new Array(this.rate).fill(0n);\n this.cacheSize = 0;\n this.mode = Mode.ABSORB;\n }\n async performDuplex() {\n // Zero-pad the cache\n for (let i = this.cacheSize; i < this.rate; i++) {\n this.cache[i] = 0n;\n }\n // Add cache into sponge state\n for (let i = 0; i < this.rate; i++) {\n this.state[i] = F.add(this.state[i], this.cache[i]);\n }\n // Perform the permutation (computationally intensive)\n this.state = permute(this.state);\n // Yield after intensive permutation\n await Promise.resolve();\n // Return rate number of elements from state\n return this.state.slice(0, this.rate);\n }\n async absorb(input) {\n if (this.mode === Mode.ABSORB && this.cacheSize === this.rate) {\n await this.performDuplex();\n this.cache[0] = input;\n this.cacheSize = 1;\n }\n else if (this.mode === Mode.ABSORB && this.cacheSize < this.rate) {\n this.cache[this.cacheSize] = input;\n this.cacheSize += 1;\n }\n else if (this.mode === Mode.SQUEEZE) {\n this.cache[0] = input;\n this.cacheSize = 1;\n this.mode = Mode.ABSORB;\n }\n }\n async squeeze() {\n if (this.mode === Mode.SQUEEZE && this.cacheSize === 0) {\n this.mode = Mode.ABSORB;\n this.cacheSize = 0;\n }\n if (this.mode === Mode.ABSORB) {\n const newOutputElements = await this.performDuplex();\n this.mode = Mode.SQUEEZE;\n for (let i = 0; i < this.rate; i++) {\n this.cache[i] = newOutputElements[i];\n }\n this.cacheSize = this.rate;\n }\n const result = this.cache[0];\n for (let i = 1; i < this.cacheSize; i++) {\n this.cache[i - 1] = this.cache[i];\n }\n this.cacheSize -= 1;\n this.cache[this.cacheSize] = 0n;\n return result;\n }\n static async hashInternal(input, outLen, isVariableLength) {\n const iv = (BigInt(input.length) << BigInt(64n)) + BigInt(outLen - 1);\n const sponge = new FieldSponge(iv);\n // Process inputs in chunks to avoid blocking\n const chunkSize = 100;\n for (let i = 0; i < input.length; i += chunkSize) {\n const chunk = input.slice(i, Math.min(i + chunkSize, input.length));\n for (const value of chunk) {\n await sponge.absorb(value); // This will yield via performDuplex when needed\n }\n }\n if (isVariableLength) {\n await sponge.absorb(1n);\n }\n const output = [];\n for (let i = 0; i < outLen; i++) {\n output.push(await sponge.squeeze()); // This will yield via performDuplex when needed\n }\n return output;\n }\n static async hashFixedLength(input, outLen = 1) {\n return this.hashInternal(input, outLen, false);\n }\n static async hashVariableLength(input, outLen = 1) {\n return this.hashInternal(input, outLen, true);\n }\n}\nexport async function hashToFieldAsync(input) {\n return (await FieldSponge.hashFixedLength(input))[0];\n}\n","import { hashToField as poseidon2Hash } from \"./hash.js\";\nimport { hashToFieldAsync as poseidon2HashAsync } from \"./hash-async.js\";\nimport { getPoseidon2BN254 } from \"./instance.js\";\nexport const permute = (input) => getPoseidon2BN254().permute(input);\nexport const F = getPoseidon2BN254().primeField;\nexport { poseidon2Hash, poseidon2HashAsync };\n","export const id_ecPublicKey = \"1.2.840.10045.2.1\";\nexport const id_ecDH = \"1.3.132.1.12\";\nexport const id_ecMQV = \"1.3.132.1.13\";\nexport const id_ecdsaWithSHA1 = \"1.2.840.10045.4.1\";\nexport const id_ecdsaWithSHA224 = \"1.2.840.10045.4.3.1\";\nexport const id_ecdsaWithSHA256 = \"1.2.840.10045.4.3.2\";\nexport const id_ecdsaWithSHA384 = \"1.2.840.10045.4.3.3\";\nexport const id_ecdsaWithSHA512 = \"1.2.840.10045.4.3.4\";\nexport const id_secp192r1 = \"1.2.840.10045.3.1.1\";\nexport const id_sect163k1 = \"1.3.132.0.1\";\nexport const id_sect163r2 = \"1.3.132.0.15\";\nexport const id_secp224r1 = \"1.3.132.0.33\";\nexport const id_sect233k1 = \"1.3.132.0.26\";\nexport const id_sect233r1 = \"1.3.132.0.27\";\nexport const id_secp256r1 = \"1.2.840.10045.3.1.7\";\nexport const id_sect283k1 = \"1.3.132.0.16\";\nexport const id_sect283r1 = \"1.3.132.0.17\";\nexport const id_secp384r1 = \"1.3.132.0.34\";\nexport const id_sect409k1 = \"1.3.132.0.36\";\nexport const id_sect409r1 = \"1.3.132.0.37\";\nexport const id_secp521r1 = \"1.3.132.0.35\";\nexport const id_sect571k1 = \"1.3.132.0.38\";\nexport const id_sect571r1 = \"1.3.132.0.39\";\n","import { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nimport * as oid from \"./object_identifiers.js\";\nfunction create(algorithm) {\n return new AlgorithmIdentifier({ algorithm });\n}\nexport const ecdsaWithSHA1 = create(oid.id_ecdsaWithSHA1);\nexport const ecdsaWithSHA224 = create(oid.id_ecdsaWithSHA224);\nexport const ecdsaWithSHA256 = create(oid.id_ecdsaWithSHA256);\nexport const ecdsaWithSHA384 = create(oid.id_ecdsaWithSHA384);\nexport const ecdsaWithSHA512 = create(oid.id_ecdsaWithSHA512);\n","import { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes, AsnProp, AsnPropTypes, OctetString, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nlet FieldID = class FieldID {\n fieldType;\n parameters;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], FieldID.prototype, \"fieldType\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], FieldID.prototype, \"parameters\", void 0);\nFieldID = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], FieldID);\nexport { FieldID };\nexport class ECPoint extends OctetString {\n}\nexport class FieldElement extends OctetString {\n}\nlet Curve = class Curve {\n a;\n b;\n seed;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.OctetString })\n], Curve.prototype, \"a\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.OctetString })\n], Curve.prototype, \"b\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.BitString, optional: true,\n })\n], Curve.prototype, \"seed\", void 0);\nCurve = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], Curve);\nexport { Curve };\nexport var ECPVer;\n(function (ECPVer) {\n ECPVer[ECPVer[\"ecpVer1\"] = 1] = \"ecpVer1\";\n})(ECPVer || (ECPVer = {}));\nlet SpecifiedECDomain = class SpecifiedECDomain {\n version = ECPVer.ecpVer1;\n fieldID;\n curve;\n base;\n order;\n cofactor;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], SpecifiedECDomain.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: FieldID })\n], SpecifiedECDomain.prototype, \"fieldID\", void 0);\n__decorate([\n AsnProp({ type: Curve })\n], SpecifiedECDomain.prototype, \"curve\", void 0);\n__decorate([\n AsnProp({ type: ECPoint })\n], SpecifiedECDomain.prototype, \"base\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], SpecifiedECDomain.prototype, \"order\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, optional: true,\n })\n], SpecifiedECDomain.prototype, \"cofactor\", void 0);\nSpecifiedECDomain = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], SpecifiedECDomain);\nexport { SpecifiedECDomain };\n","import { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes, AsnProp, AsnPropTypes, } from \"@peculiar/asn1-schema\";\nimport { SpecifiedECDomain } from \"./rfc3279.js\";\nlet ECParameters = class ECParameters {\n namedCurve;\n implicitCurve;\n specifiedCurve;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], ECParameters.prototype, \"namedCurve\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Null })\n], ECParameters.prototype, \"implicitCurve\", void 0);\n__decorate([\n AsnProp({ type: SpecifiedECDomain })\n], ECParameters.prototype, \"specifiedCurve\", void 0);\nECParameters = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], ECParameters);\nexport { ECParameters };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, OctetString, } from \"@peculiar/asn1-schema\";\nimport { ECParameters } from \"./ec_parameters.js\";\nexport class ECPrivateKey {\n version = 1;\n privateKey = new OctetString();\n parameters;\n publicKey;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], ECPrivateKey.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], ECPrivateKey.prototype, \"privateKey\", void 0);\n__decorate([\n AsnProp({\n type: ECParameters, context: 0, optional: true,\n })\n], ECPrivateKey.prototype, \"parameters\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.BitString, context: 1, optional: true,\n })\n], ECPrivateKey.prototype, \"publicKey\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nexport class ECDSASigValue {\n r = new ArrayBuffer(0);\n s = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], ECDSASigValue.prototype, \"r\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], ECDSASigValue.prototype, \"s\", void 0);\n","export const id_pkcs_1 = \"1.2.840.113549.1.1\";\nexport const id_rsaEncryption = `${id_pkcs_1}.1`;\nexport const id_RSAES_OAEP = `${id_pkcs_1}.7`;\nexport const id_pSpecified = `${id_pkcs_1}.9`;\nexport const id_RSASSA_PSS = `${id_pkcs_1}.10`;\nexport const id_md2WithRSAEncryption = `${id_pkcs_1}.2`;\nexport const id_md5WithRSAEncryption = `${id_pkcs_1}.4`;\nexport const id_sha1WithRSAEncryption = `${id_pkcs_1}.5`;\nexport const id_sha224WithRSAEncryption = `${id_pkcs_1}.14`;\nexport const id_ssha224WithRSAEncryption = id_sha224WithRSAEncryption;\nexport const id_sha256WithRSAEncryption = `${id_pkcs_1}.11`;\nexport const id_sha384WithRSAEncryption = `${id_pkcs_1}.12`;\nexport const id_sha512WithRSAEncryption = `${id_pkcs_1}.13`;\nexport const id_sha512_224WithRSAEncryption = `${id_pkcs_1}.15`;\nexport const id_sha512_256WithRSAEncryption = `${id_pkcs_1}.16`;\nexport const id_sha1 = \"1.3.14.3.2.26\";\nexport const id_sha224 = \"2.16.840.1.101.3.4.2.4\";\nexport const id_sha256 = \"2.16.840.1.101.3.4.2.1\";\nexport const id_sha384 = \"2.16.840.1.101.3.4.2.2\";\nexport const id_sha512 = \"2.16.840.1.101.3.4.2.3\";\nexport const id_sha512_224 = \"2.16.840.1.101.3.4.2.5\";\nexport const id_sha512_256 = \"2.16.840.1.101.3.4.2.6\";\nexport const id_md2 = \"1.2.840.113549.2.2\";\nexport const id_md5 = \"1.2.840.113549.2.5\";\nexport const id_mgf1 = `${id_pkcs_1}.8`;\n","import { AsnConvert, AsnOctetStringConverter } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nimport * as oid from \"./object_identifiers.js\";\nfunction create(algorithm) {\n return new AlgorithmIdentifier({\n algorithm, parameters: null,\n });\n}\nexport const md2 = create(oid.id_md2);\nexport const md4 = create(oid.id_md5);\nexport const sha1 = create(oid.id_sha1);\nexport const sha224 = create(oid.id_sha224);\nexport const sha256 = create(oid.id_sha256);\nexport const sha384 = create(oid.id_sha384);\nexport const sha512 = create(oid.id_sha512);\nexport const sha512_224 = create(oid.id_sha512_224);\nexport const sha512_256 = create(oid.id_sha512_256);\nexport const mgf1SHA1 = new AlgorithmIdentifier({\n algorithm: oid.id_mgf1,\n parameters: AsnConvert.serialize(sha1),\n});\nexport const pSpecifiedEmpty = new AlgorithmIdentifier({\n algorithm: oid.id_pSpecified,\n parameters: AsnConvert.serialize(AsnOctetStringConverter.toASN(new Uint8Array([\n 0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, 0x55, 0xbf, 0xef, 0x95, 0x60, 0x18,\n 0x90, 0xaf, 0xd8, 0x07, 0x09,\n ]).buffer)),\n});\nexport const rsaEncryption = create(oid.id_rsaEncryption);\nexport const md2WithRSAEncryption = create(oid.id_md2WithRSAEncryption);\nexport const md5WithRSAEncryption = create(oid.id_md5WithRSAEncryption);\nexport const sha1WithRSAEncryption = create(oid.id_sha1WithRSAEncryption);\nexport const sha224WithRSAEncryption = create(oid.id_sha512_224WithRSAEncryption);\nexport const sha256WithRSAEncryption = create(oid.id_sha512_256WithRSAEncryption);\nexport const sha384WithRSAEncryption = create(oid.id_sha384WithRSAEncryption);\nexport const sha512WithRSAEncryption = create(oid.id_sha512WithRSAEncryption);\nexport const sha512_224WithRSAEncryption = create(oid.id_sha512_224WithRSAEncryption);\nexport const sha512_256WithRSAEncryption = create(oid.id_sha512_256WithRSAEncryption);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnConvert } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nimport { id_mgf1, id_RSAES_OAEP } from \"../object_identifiers.js\";\nimport { sha1, mgf1SHA1, pSpecifiedEmpty, } from \"../algorithms.js\";\nexport class RsaEsOaepParams {\n hashAlgorithm = new AlgorithmIdentifier(sha1);\n maskGenAlgorithm = new AlgorithmIdentifier({\n algorithm: id_mgf1,\n parameters: AsnConvert.serialize(sha1),\n });\n pSourceAlgorithm = new AlgorithmIdentifier(pSpecifiedEmpty);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AlgorithmIdentifier, context: 0, defaultValue: sha1,\n })\n], RsaEsOaepParams.prototype, \"hashAlgorithm\", void 0);\n__decorate([\n AsnProp({\n type: AlgorithmIdentifier, context: 1, defaultValue: mgf1SHA1,\n })\n], RsaEsOaepParams.prototype, \"maskGenAlgorithm\", void 0);\n__decorate([\n AsnProp({\n type: AlgorithmIdentifier, context: 2, defaultValue: pSpecifiedEmpty,\n })\n], RsaEsOaepParams.prototype, \"pSourceAlgorithm\", void 0);\nexport const RSAES_OAEP = new AlgorithmIdentifier({\n algorithm: id_RSAES_OAEP,\n parameters: AsnConvert.serialize(new RsaEsOaepParams()),\n});\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnConvert, AsnPropTypes, } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nimport { id_mgf1, id_RSASSA_PSS } from \"../object_identifiers.js\";\nimport { sha1, mgf1SHA1 } from \"../algorithms.js\";\nexport class RsaSaPssParams {\n hashAlgorithm = new AlgorithmIdentifier(sha1);\n maskGenAlgorithm = new AlgorithmIdentifier({\n algorithm: id_mgf1,\n parameters: AsnConvert.serialize(sha1),\n });\n saltLength = 20;\n trailerField = 1;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AlgorithmIdentifier, context: 0, defaultValue: sha1,\n })\n], RsaSaPssParams.prototype, \"hashAlgorithm\", void 0);\n__decorate([\n AsnProp({\n type: AlgorithmIdentifier, context: 1, defaultValue: mgf1SHA1,\n })\n], RsaSaPssParams.prototype, \"maskGenAlgorithm\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, context: 2, defaultValue: 20,\n })\n], RsaSaPssParams.prototype, \"saltLength\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, context: 3, defaultValue: 1,\n })\n], RsaSaPssParams.prototype, \"trailerField\", void 0);\nexport const RSASSA_PSS = new AlgorithmIdentifier({\n algorithm: id_RSASSA_PSS,\n parameters: AsnConvert.serialize(new RsaSaPssParams()),\n});\n","import { __decorate } from \"tslib\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nimport { AsnProp, OctetString } from \"@peculiar/asn1-schema\";\nexport class DigestInfo {\n digestAlgorithm = new AlgorithmIdentifier();\n digest = new OctetString();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], DigestInfo.prototype, \"digestAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], DigestInfo.prototype, \"digest\", void 0);\n","var OtherPrimeInfos_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nexport class OtherPrimeInfo {\n prime = new ArrayBuffer(0);\n exponent = new ArrayBuffer(0);\n coefficient = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], OtherPrimeInfo.prototype, \"prime\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], OtherPrimeInfo.prototype, \"exponent\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], OtherPrimeInfo.prototype, \"coefficient\", void 0);\nlet OtherPrimeInfos = OtherPrimeInfos_1 = class OtherPrimeInfos extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, OtherPrimeInfos_1.prototype);\n }\n};\nOtherPrimeInfos = OtherPrimeInfos_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: OtherPrimeInfo,\n })\n], OtherPrimeInfos);\nexport { OtherPrimeInfos };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { OtherPrimeInfos } from \"./other_prime_info.js\";\nexport class RSAPrivateKey {\n version = 0;\n modulus = new ArrayBuffer(0);\n publicExponent = new ArrayBuffer(0);\n privateExponent = new ArrayBuffer(0);\n prime1 = new ArrayBuffer(0);\n prime2 = new ArrayBuffer(0);\n exponent1 = new ArrayBuffer(0);\n exponent2 = new ArrayBuffer(0);\n coefficient = new ArrayBuffer(0);\n otherPrimeInfos;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], RSAPrivateKey.prototype, \"version\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPrivateKey.prototype, \"modulus\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPrivateKey.prototype, \"publicExponent\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPrivateKey.prototype, \"privateExponent\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPrivateKey.prototype, \"prime1\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPrivateKey.prototype, \"prime2\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPrivateKey.prototype, \"exponent1\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPrivateKey.prototype, \"exponent2\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPrivateKey.prototype, \"coefficient\", void 0);\n__decorate([\n AsnProp({\n type: OtherPrimeInfos, optional: true,\n })\n], RSAPrivateKey.prototype, \"otherPrimeInfos\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nexport class RSAPublicKey {\n modulus = new ArrayBuffer(0);\n publicExponent = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPublicKey.prototype, \"modulus\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], RSAPublicKey.prototype, \"publicExponent\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { Name } from \"@peculiar/asn1-x509\";\nexport class IssuerAndSerialNumber {\n issuer = new Name();\n serialNumber = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: Name })\n], IssuerAndSerialNumber.prototype, \"issuer\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], IssuerAndSerialNumber.prototype, \"serialNumber\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { SubjectKeyIdentifier } from \"@peculiar/asn1-x509\";\nimport { IssuerAndSerialNumber } from \"./issuer_and_serial_number.js\";\nlet SignerIdentifier = class SignerIdentifier {\n subjectKeyIdentifier;\n issuerAndSerialNumber;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: SubjectKeyIdentifier, context: 0, implicit: true,\n })\n], SignerIdentifier.prototype, \"subjectKeyIdentifier\", void 0);\n__decorate([\n AsnProp({ type: IssuerAndSerialNumber })\n], SignerIdentifier.prototype, \"issuerAndSerialNumber\", void 0);\nSignerIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], SignerIdentifier);\nexport { SignerIdentifier };\n","import { __decorate } from \"tslib\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nimport { AsnTypeTypes, AsnType, } from \"@peculiar/asn1-schema\";\nexport var CMSVersion;\n(function (CMSVersion) {\n CMSVersion[CMSVersion[\"v0\"] = 0] = \"v0\";\n CMSVersion[CMSVersion[\"v1\"] = 1] = \"v1\";\n CMSVersion[CMSVersion[\"v2\"] = 2] = \"v2\";\n CMSVersion[CMSVersion[\"v3\"] = 3] = \"v3\";\n CMSVersion[CMSVersion[\"v4\"] = 4] = \"v4\";\n CMSVersion[CMSVersion[\"v5\"] = 5] = \"v5\";\n})(CMSVersion || (CMSVersion = {}));\nlet DigestAlgorithmIdentifier = class DigestAlgorithmIdentifier extends AlgorithmIdentifier {\n};\nDigestAlgorithmIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], DigestAlgorithmIdentifier);\nexport { DigestAlgorithmIdentifier };\nlet SignatureAlgorithmIdentifier = class SignatureAlgorithmIdentifier extends AlgorithmIdentifier {\n};\nSignatureAlgorithmIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], SignatureAlgorithmIdentifier);\nexport { SignatureAlgorithmIdentifier };\nlet KeyEncryptionAlgorithmIdentifier = class KeyEncryptionAlgorithmIdentifier extends AlgorithmIdentifier {\n};\nKeyEncryptionAlgorithmIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], KeyEncryptionAlgorithmIdentifier);\nexport { KeyEncryptionAlgorithmIdentifier };\nlet ContentEncryptionAlgorithmIdentifier = class ContentEncryptionAlgorithmIdentifier extends AlgorithmIdentifier {\n};\nContentEncryptionAlgorithmIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], ContentEncryptionAlgorithmIdentifier);\nexport { ContentEncryptionAlgorithmIdentifier };\nlet MessageAuthenticationCodeAlgorithm = class MessageAuthenticationCodeAlgorithm extends AlgorithmIdentifier {\n};\nMessageAuthenticationCodeAlgorithm = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], MessageAuthenticationCodeAlgorithm);\nexport { MessageAuthenticationCodeAlgorithm };\nlet KeyDerivationAlgorithmIdentifier = class KeyDerivationAlgorithmIdentifier extends AlgorithmIdentifier {\n};\nKeyDerivationAlgorithmIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], KeyDerivationAlgorithmIdentifier);\nexport { KeyDerivationAlgorithmIdentifier };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nexport class Attribute {\n attrType = \"\";\n attrValues = [];\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], Attribute.prototype, \"attrType\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any, repeated: \"set\",\n })\n], Attribute.prototype, \"attrValues\", void 0);\n","var SignerInfos_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, OctetString, } from \"@peculiar/asn1-schema\";\nimport { SignerIdentifier } from \"./signer_identifier.js\";\nimport { CMSVersion, SignatureAlgorithmIdentifier, DigestAlgorithmIdentifier, } from \"./types.js\";\nimport { Attribute } from \"./attribute.js\";\nexport class SignerInfo {\n version = CMSVersion.v0;\n sid = new SignerIdentifier();\n digestAlgorithm = new DigestAlgorithmIdentifier();\n signedAttrs;\n signedAttrsRaw;\n signatureAlgorithm = new SignatureAlgorithmIdentifier();\n signature = new OctetString();\n unsignedAttrs;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], SignerInfo.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: SignerIdentifier })\n], SignerInfo.prototype, \"sid\", void 0);\n__decorate([\n AsnProp({ type: DigestAlgorithmIdentifier })\n], SignerInfo.prototype, \"digestAlgorithm\", void 0);\n__decorate([\n AsnProp({\n type: Attribute,\n repeated: \"set\",\n context: 0,\n implicit: true,\n optional: true,\n raw: true,\n })\n], SignerInfo.prototype, \"signedAttrs\", void 0);\n__decorate([\n AsnProp({ type: SignatureAlgorithmIdentifier })\n], SignerInfo.prototype, \"signatureAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], SignerInfo.prototype, \"signature\", void 0);\n__decorate([\n AsnProp({\n type: Attribute, repeated: \"set\", context: 1, implicit: true, optional: true,\n })\n], SignerInfo.prototype, \"unsignedAttrs\", void 0);\nlet SignerInfos = SignerInfos_1 = class SignerInfos extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, SignerInfos_1.prototype);\n }\n};\nSignerInfos = SignerInfos_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Set, itemType: SignerInfo,\n })\n], SignerInfos);\nexport { SignerInfos };\n","import { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes } from \"@peculiar/asn1-schema\";\nimport { SignerInfo } from \"../signer_info.js\";\nexport const id_counterSignature = \"1.2.840.113549.1.9.6\";\nlet CounterSignature = class CounterSignature extends SignerInfo {\n};\nCounterSignature = __decorate([\n AsnType({ type: AsnTypeTypes.Sequence })\n], CounterSignature);\nexport { CounterSignature };\n","import { __decorate } from \"tslib\";\nimport { Time } from \"@peculiar/asn1-x509\";\nimport { AsnTypeTypes, AsnType } from \"@peculiar/asn1-schema\";\nexport const id_signingTime = \"1.2.840.113549.1.9.5\";\nlet SigningTime = class SigningTime extends Time {\n};\nSigningTime = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], SigningTime);\nexport { SigningTime };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { GeneralName, Attribute } from \"@peculiar/asn1-x509\";\nexport class ACClearAttrs {\n acIssuer = new GeneralName();\n acSerial = 0;\n attrs = [];\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: GeneralName })\n], ACClearAttrs.prototype, \"acIssuer\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], ACClearAttrs.prototype, \"acSerial\", void 0);\n__decorate([\n AsnProp({\n type: Attribute, repeated: \"sequence\",\n })\n], ACClearAttrs.prototype, \"attrs\", void 0);\n","var AttrSpec_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes, AsnPropTypes, AsnArray, } from \"@peculiar/asn1-schema\";\nlet AttrSpec = AttrSpec_1 = class AttrSpec extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, AttrSpec_1.prototype);\n }\n};\nAttrSpec = AttrSpec_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: AsnPropTypes.ObjectIdentifier,\n })\n], AttrSpec);\nexport { AttrSpec };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AttrSpec } from \"./attr_spec.js\";\nexport class AAControls {\n pathLenConstraint;\n permittedAttrs;\n excludedAttrs;\n permitUnSpecified = true;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, optional: true,\n })\n], AAControls.prototype, \"pathLenConstraint\", void 0);\n__decorate([\n AsnProp({\n type: AttrSpec, implicit: true, context: 0, optional: true,\n })\n], AAControls.prototype, \"permittedAttrs\", void 0);\n__decorate([\n AsnProp({\n type: AttrSpec, implicit: true, context: 1, optional: true,\n })\n], AAControls.prototype, \"excludedAttrs\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Boolean, defaultValue: true,\n })\n], AAControls.prototype, \"permitUnSpecified\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { GeneralNames, } from \"@peculiar/asn1-x509\";\nexport class IssuerSerial {\n issuer = new GeneralNames();\n serial = new ArrayBuffer(0);\n issuerUID = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: GeneralNames })\n], IssuerSerial.prototype, \"issuer\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], IssuerSerial.prototype, \"serial\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.BitString, optional: true,\n })\n], IssuerSerial.prototype, \"issuerUID\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nexport var DigestedObjectType;\n(function (DigestedObjectType) {\n DigestedObjectType[DigestedObjectType[\"publicKey\"] = 0] = \"publicKey\";\n DigestedObjectType[DigestedObjectType[\"publicKeyCert\"] = 1] = \"publicKeyCert\";\n DigestedObjectType[DigestedObjectType[\"otherObjectTypes\"] = 2] = \"otherObjectTypes\";\n})(DigestedObjectType || (DigestedObjectType = {}));\nexport class ObjectDigestInfo {\n digestedObjectType = DigestedObjectType.publicKey;\n otherObjectTypeID;\n digestAlgorithm = new AlgorithmIdentifier();\n objectDigest = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Enumerated })\n], ObjectDigestInfo.prototype, \"digestedObjectType\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.ObjectIdentifier, optional: true,\n })\n], ObjectDigestInfo.prototype, \"otherObjectTypeID\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], ObjectDigestInfo.prototype, \"digestAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], ObjectDigestInfo.prototype, \"objectDigest\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"@peculiar/asn1-x509\";\nimport { IssuerSerial } from \"./issuer_serial.js\";\nimport { ObjectDigestInfo } from \"./object_digest_info.js\";\nexport class V2Form {\n issuerName;\n baseCertificateID;\n objectDigestInfo;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: GeneralNames, optional: true,\n })\n], V2Form.prototype, \"issuerName\", void 0);\n__decorate([\n AsnProp({\n type: IssuerSerial, context: 0, implicit: true, optional: true,\n })\n], V2Form.prototype, \"baseCertificateID\", void 0);\n__decorate([\n AsnProp({\n type: ObjectDigestInfo, context: 1, implicit: true, optional: true,\n })\n], V2Form.prototype, \"objectDigestInfo\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes, AsnProp, } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"@peculiar/asn1-x509\";\nimport { V2Form } from \"./v2_form.js\";\nlet AttCertIssuer = class AttCertIssuer {\n v1Form;\n v2Form;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: GeneralName, repeated: \"sequence\",\n })\n], AttCertIssuer.prototype, \"v1Form\", void 0);\n__decorate([\n AsnProp({\n type: V2Form, context: 0, implicit: true,\n })\n], AttCertIssuer.prototype, \"v2Form\", void 0);\nAttCertIssuer = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], AttCertIssuer);\nexport { AttCertIssuer };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nexport class AttCertValidityPeriod {\n notBeforeTime = new Date();\n notAfterTime = new Date();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], AttCertValidityPeriod.prototype, \"notBeforeTime\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.GeneralizedTime })\n], AttCertValidityPeriod.prototype, \"notAfterTime\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"@peculiar/asn1-x509\";\nimport { IssuerSerial } from \"./issuer_serial.js\";\nimport { ObjectDigestInfo } from \"./object_digest_info.js\";\nexport class Holder {\n baseCertificateID;\n entityName;\n objectDigestInfo;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: IssuerSerial, implicit: true, context: 0, optional: true,\n })\n], Holder.prototype, \"baseCertificateID\", void 0);\n__decorate([\n AsnProp({\n type: GeneralNames, implicit: true, context: 1, optional: true,\n })\n], Holder.prototype, \"entityName\", void 0);\n__decorate([\n AsnProp({\n type: ObjectDigestInfo, implicit: true, context: 2, optional: true,\n })\n], Holder.prototype, \"objectDigestInfo\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnIntegerArrayBufferConverter, } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier, Attribute, Extensions, } from \"@peculiar/asn1-x509\";\nimport { Holder } from \"./holder.js\";\nimport { AttCertIssuer } from \"./attr_cert_issuer.js\";\nimport { AttCertValidityPeriod } from \"./attr_cert_validity_period.js\";\nexport var AttCertVersion;\n(function (AttCertVersion) {\n AttCertVersion[AttCertVersion[\"v2\"] = 1] = \"v2\";\n})(AttCertVersion || (AttCertVersion = {}));\nexport class AttributeCertificateInfo {\n version = AttCertVersion.v2;\n holder = new Holder();\n issuer = new AttCertIssuer();\n signature = new AlgorithmIdentifier();\n serialNumber = new ArrayBuffer(0);\n attrCertValidityPeriod = new AttCertValidityPeriod();\n attributes = [];\n issuerUniqueID;\n extensions;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], AttributeCertificateInfo.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: Holder })\n], AttributeCertificateInfo.prototype, \"holder\", void 0);\n__decorate([\n AsnProp({ type: AttCertIssuer })\n], AttributeCertificateInfo.prototype, \"issuer\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], AttributeCertificateInfo.prototype, \"signature\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Integer, converter: AsnIntegerArrayBufferConverter,\n })\n], AttributeCertificateInfo.prototype, \"serialNumber\", void 0);\n__decorate([\n AsnProp({ type: AttCertValidityPeriod })\n], AttributeCertificateInfo.prototype, \"attrCertValidityPeriod\", void 0);\n__decorate([\n AsnProp({\n type: Attribute, repeated: \"sequence\",\n })\n], AttributeCertificateInfo.prototype, \"attributes\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.BitString, optional: true,\n })\n], AttributeCertificateInfo.prototype, \"issuerUniqueID\", void 0);\n__decorate([\n AsnProp({\n type: Extensions, optional: true,\n })\n], AttributeCertificateInfo.prototype, \"extensions\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier } from \"@peculiar/asn1-x509\";\nimport { AttributeCertificateInfo } from \"./attribute_certificate_info.js\";\nexport class AttributeCertificate {\n acinfo = new AttributeCertificateInfo();\n signatureAlgorithm = new AlgorithmIdentifier();\n signatureValue = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AttributeCertificateInfo })\n], AttributeCertificate.prototype, \"acinfo\", void 0);\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], AttributeCertificate.prototype, \"signatureAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], AttributeCertificate.prototype, \"signatureValue\", void 0);\n","import { BitString } from \"@peculiar/asn1-schema\";\nexport var ClassListFlags;\n(function (ClassListFlags) {\n ClassListFlags[ClassListFlags[\"unmarked\"] = 1] = \"unmarked\";\n ClassListFlags[ClassListFlags[\"unclassified\"] = 2] = \"unclassified\";\n ClassListFlags[ClassListFlags[\"restricted\"] = 4] = \"restricted\";\n ClassListFlags[ClassListFlags[\"confidential\"] = 8] = \"confidential\";\n ClassListFlags[ClassListFlags[\"secret\"] = 16] = \"secret\";\n ClassListFlags[ClassListFlags[\"topSecret\"] = 32] = \"topSecret\";\n})(ClassListFlags || (ClassListFlags = {}));\nexport class ClassList extends BitString {\n}\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nexport class SecurityCategory {\n type = \"\";\n value = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: AsnPropTypes.ObjectIdentifier, implicit: true, context: 0,\n })\n], SecurityCategory.prototype, \"type\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any, implicit: true, context: 1,\n })\n], SecurityCategory.prototype, \"value\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nimport { ClassList, ClassListFlags } from \"./class_list.js\";\nimport { SecurityCategory } from \"./security_category.js\";\nexport class Clearance {\n policyId = \"\";\n classList = new ClassList(ClassListFlags.unclassified);\n securityCategories;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], Clearance.prototype, \"policyId\", void 0);\n__decorate([\n AsnProp({\n type: ClassList, defaultValue: new ClassList(ClassListFlags.unclassified),\n })\n], Clearance.prototype, \"classList\", void 0);\n__decorate([\n AsnProp({\n type: SecurityCategory, repeated: \"set\",\n })\n], Clearance.prototype, \"securityCategories\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, OctetString, AsnPropTypes, } from \"@peculiar/asn1-schema\";\nimport { GeneralNames } from \"@peculiar/asn1-x509\";\nexport class IetfAttrSyntaxValueChoices {\n cotets;\n oid;\n string;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: OctetString })\n], IetfAttrSyntaxValueChoices.prototype, \"cotets\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], IetfAttrSyntaxValueChoices.prototype, \"oid\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Utf8String })\n], IetfAttrSyntaxValueChoices.prototype, \"string\", void 0);\nexport class IetfAttrSyntax {\n policyAuthority;\n values = [];\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: GeneralNames, implicit: true, context: 0, optional: true,\n })\n], IetfAttrSyntax.prototype, \"policyAuthority\", void 0);\n__decorate([\n AsnProp({\n type: IetfAttrSyntaxValueChoices, repeated: \"sequence\",\n })\n], IetfAttrSyntax.prototype, \"values\", void 0);\n","import { id_pe, id_ce, id_pkix, } from \"@peculiar/asn1-x509\";\nexport const id_pe_ac_auditIdentity = `${id_pe}.4`;\nexport const id_pe_aaControls = `${id_pe}.6`;\nexport const id_pe_ac_proxying = `${id_pe}.10`;\nexport const id_ce_targetInformation = `${id_ce}.55`;\nexport const id_aca = `${id_pkix}.10`;\nexport const id_aca_authenticationInfo = `${id_aca}.1`;\nexport const id_aca_accessIdentity = `${id_aca}.2`;\nexport const id_aca_chargingIdentity = `${id_aca}.3`;\nexport const id_aca_group = `${id_aca}.4`;\nexport const id_aca_encAttrs = `${id_aca}.6`;\nexport const id_at = \"2.5.4\";\nexport const id_at_role = `${id_at}.72`;\nexport const id_at_clearance = \"2.5.1.5.55\";\n","var Targets_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnType, AsnTypeTypes, AsnArray, } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"@peculiar/asn1-x509\";\nimport { IssuerSerial } from \"./issuer_serial.js\";\nimport { ObjectDigestInfo } from \"./object_digest_info.js\";\nexport class TargetCert {\n targetCertificate = new IssuerSerial();\n targetName;\n certDigestInfo;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: IssuerSerial })\n], TargetCert.prototype, \"targetCertificate\", void 0);\n__decorate([\n AsnProp({\n type: GeneralName, optional: true,\n })\n], TargetCert.prototype, \"targetName\", void 0);\n__decorate([\n AsnProp({\n type: ObjectDigestInfo, optional: true,\n })\n], TargetCert.prototype, \"certDigestInfo\", void 0);\nlet Target = class Target {\n targetName;\n targetGroup;\n targetCert;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: GeneralName, context: 0, implicit: true,\n })\n], Target.prototype, \"targetName\", void 0);\n__decorate([\n AsnProp({\n type: GeneralName, context: 1, implicit: true,\n })\n], Target.prototype, \"targetGroup\", void 0);\n__decorate([\n AsnProp({\n type: TargetCert, context: 2, implicit: true,\n })\n], Target.prototype, \"targetCert\", void 0);\nTarget = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], Target);\nexport { Target };\nlet Targets = Targets_1 = class Targets extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, Targets_1.prototype);\n }\n};\nTargets = Targets_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: Target,\n })\n], Targets);\nexport { Targets };\n","var ProxyInfo_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes, AsnArray, } from \"@peculiar/asn1-schema\";\nimport { Targets } from \"./target.js\";\nlet ProxyInfo = ProxyInfo_1 = class ProxyInfo extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, ProxyInfo_1.prototype);\n }\n};\nProxyInfo = ProxyInfo_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: Targets,\n })\n], ProxyInfo);\nexport { ProxyInfo };\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { GeneralNames, GeneralName } from \"@peculiar/asn1-x509\";\nexport class RoleSyntax {\n roleAuthority;\n roleName;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: GeneralNames, implicit: true, context: 0, optional: true,\n })\n], RoleSyntax.prototype, \"roleAuthority\", void 0);\n__decorate([\n AsnProp({\n type: GeneralName, implicit: true, context: 1,\n })\n], RoleSyntax.prototype, \"roleName\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, OctetString } from \"@peculiar/asn1-schema\";\nimport { GeneralName } from \"@peculiar/asn1-x509\";\nexport class SvceAuthInfo {\n service = new GeneralName();\n ident = new GeneralName();\n authInfo;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: GeneralName })\n], SvceAuthInfo.prototype, \"service\", void 0);\n__decorate([\n AsnProp({ type: GeneralName })\n], SvceAuthInfo.prototype, \"ident\", void 0);\n__decorate([\n AsnProp({\n type: OctetString, optional: true,\n })\n], SvceAuthInfo.prototype, \"authInfo\", void 0);\n","var CertificateSet_1;\nimport { __decorate } from \"tslib\";\nimport { AsnType, AsnTypeTypes, AsnProp, AsnPropTypes, AsnArray, } from \"@peculiar/asn1-schema\";\nimport { Certificate } from \"@peculiar/asn1-x509\";\nimport { AttributeCertificate } from \"@peculiar/asn1-x509-attr\";\nexport class OtherCertificateFormat {\n otherCertFormat = \"\";\n otherCert = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], OtherCertificateFormat.prototype, \"otherCertFormat\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], OtherCertificateFormat.prototype, \"otherCert\", void 0);\nlet CertificateChoices = class CertificateChoices {\n certificate;\n v2AttrCert;\n other;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: Certificate })\n], CertificateChoices.prototype, \"certificate\", void 0);\n__decorate([\n AsnProp({\n type: AttributeCertificate, context: 2, implicit: true,\n })\n], CertificateChoices.prototype, \"v2AttrCert\", void 0);\n__decorate([\n AsnProp({\n type: OtherCertificateFormat, context: 3, implicit: true,\n })\n], CertificateChoices.prototype, \"other\", void 0);\nCertificateChoices = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], CertificateChoices);\nexport { CertificateChoices };\nlet CertificateSet = CertificateSet_1 = class CertificateSet extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, CertificateSet_1.prototype);\n }\n};\nCertificateSet = CertificateSet_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Set, itemType: CertificateChoices,\n })\n], CertificateSet);\nexport { CertificateSet };\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nexport class ContentInfo {\n contentType = \"\";\n content = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], ContentInfo.prototype, \"contentType\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any, context: 0,\n })\n], ContentInfo.prototype, \"content\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, OctetString, } from \"@peculiar/asn1-schema\";\nlet EncapsulatedContent = class EncapsulatedContent {\n single;\n any;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({ type: OctetString })\n], EncapsulatedContent.prototype, \"single\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], EncapsulatedContent.prototype, \"any\", void 0);\nEncapsulatedContent = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], EncapsulatedContent);\nexport { EncapsulatedContent };\nexport class EncapsulatedContentInfo {\n eContentType = \"\";\n eContent;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], EncapsulatedContentInfo.prototype, \"eContentType\", void 0);\n__decorate([\n AsnProp({\n type: EncapsulatedContent, context: 0, optional: true,\n })\n], EncapsulatedContentInfo.prototype, \"eContent\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnConstructedOctetStringConverter, AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, OctetString, } from \"@peculiar/asn1-schema\";\nimport { ContentEncryptionAlgorithmIdentifier } from \"./types.js\";\nlet EncryptedContent = class EncryptedContent {\n value;\n constructedValue;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: OctetString, context: 0, implicit: true, optional: true,\n })\n], EncryptedContent.prototype, \"value\", void 0);\n__decorate([\n AsnProp({\n type: OctetString,\n converter: AsnConstructedOctetStringConverter,\n context: 0,\n implicit: true,\n optional: true,\n repeated: \"sequence\",\n })\n], EncryptedContent.prototype, \"constructedValue\", void 0);\nEncryptedContent = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], EncryptedContent);\nexport { EncryptedContent };\nexport class EncryptedContentInfo {\n contentType = \"\";\n contentEncryptionAlgorithm = new ContentEncryptionAlgorithmIdentifier();\n encryptedContent;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], EncryptedContentInfo.prototype, \"contentType\", void 0);\n__decorate([\n AsnProp({ type: ContentEncryptionAlgorithmIdentifier })\n], EncryptedContentInfo.prototype, \"contentEncryptionAlgorithm\", void 0);\n__decorate([\n AsnProp({\n type: EncryptedContent, optional: true,\n })\n], EncryptedContentInfo.prototype, \"encryptedContent\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes } from \"@peculiar/asn1-schema\";\nexport class OtherKeyAttribute {\n keyAttrId = \"\";\n keyAttr;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], OtherKeyAttribute.prototype, \"keyAttrId\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.Any, optional: true,\n })\n], OtherKeyAttribute.prototype, \"keyAttr\", void 0);\n","var RecipientEncryptedKeys_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, OctetString, } from \"@peculiar/asn1-schema\";\nimport { AlgorithmIdentifier, SubjectKeyIdentifier } from \"@peculiar/asn1-x509\";\nimport { CMSVersion, KeyEncryptionAlgorithmIdentifier, } from \"./types.js\";\nimport { IssuerAndSerialNumber } from \"./issuer_and_serial_number.js\";\nimport { OtherKeyAttribute } from \"./other_key_attribute.js\";\nexport class RecipientKeyIdentifier {\n subjectKeyIdentifier = new SubjectKeyIdentifier();\n date;\n other;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: SubjectKeyIdentifier })\n], RecipientKeyIdentifier.prototype, \"subjectKeyIdentifier\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.GeneralizedTime, optional: true,\n })\n], RecipientKeyIdentifier.prototype, \"date\", void 0);\n__decorate([\n AsnProp({\n type: OtherKeyAttribute, optional: true,\n })\n], RecipientKeyIdentifier.prototype, \"other\", void 0);\nlet KeyAgreeRecipientIdentifier = class KeyAgreeRecipientIdentifier {\n rKeyId;\n issuerAndSerialNumber;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: RecipientKeyIdentifier, context: 0, implicit: true, optional: true,\n })\n], KeyAgreeRecipientIdentifier.prototype, \"rKeyId\", void 0);\n__decorate([\n AsnProp({\n type: IssuerAndSerialNumber, optional: true,\n })\n], KeyAgreeRecipientIdentifier.prototype, \"issuerAndSerialNumber\", void 0);\nKeyAgreeRecipientIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], KeyAgreeRecipientIdentifier);\nexport { KeyAgreeRecipientIdentifier };\nexport class RecipientEncryptedKey {\n rid = new KeyAgreeRecipientIdentifier();\n encryptedKey = new OctetString();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: KeyAgreeRecipientIdentifier })\n], RecipientEncryptedKey.prototype, \"rid\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], RecipientEncryptedKey.prototype, \"encryptedKey\", void 0);\nlet RecipientEncryptedKeys = RecipientEncryptedKeys_1 = class RecipientEncryptedKeys extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, RecipientEncryptedKeys_1.prototype);\n }\n};\nRecipientEncryptedKeys = RecipientEncryptedKeys_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Sequence, itemType: RecipientEncryptedKey,\n })\n], RecipientEncryptedKeys);\nexport { RecipientEncryptedKeys };\nexport class OriginatorPublicKey {\n algorithm = new AlgorithmIdentifier();\n publicKey = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AlgorithmIdentifier })\n], OriginatorPublicKey.prototype, \"algorithm\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.BitString })\n], OriginatorPublicKey.prototype, \"publicKey\", void 0);\nlet OriginatorIdentifierOrKey = class OriginatorIdentifierOrKey {\n subjectKeyIdentifier;\n originatorKey;\n issuerAndSerialNumber;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: SubjectKeyIdentifier, context: 0, implicit: true, optional: true,\n })\n], OriginatorIdentifierOrKey.prototype, \"subjectKeyIdentifier\", void 0);\n__decorate([\n AsnProp({\n type: OriginatorPublicKey, context: 1, implicit: true, optional: true,\n })\n], OriginatorIdentifierOrKey.prototype, \"originatorKey\", void 0);\n__decorate([\n AsnProp({\n type: IssuerAndSerialNumber, optional: true,\n })\n], OriginatorIdentifierOrKey.prototype, \"issuerAndSerialNumber\", void 0);\nOriginatorIdentifierOrKey = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], OriginatorIdentifierOrKey);\nexport { OriginatorIdentifierOrKey };\nexport class KeyAgreeRecipientInfo {\n version = CMSVersion.v3;\n originator = new OriginatorIdentifierOrKey();\n ukm;\n keyEncryptionAlgorithm = new KeyEncryptionAlgorithmIdentifier();\n recipientEncryptedKeys = new RecipientEncryptedKeys();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], KeyAgreeRecipientInfo.prototype, \"version\", void 0);\n__decorate([\n AsnProp({\n type: OriginatorIdentifierOrKey, context: 0,\n })\n], KeyAgreeRecipientInfo.prototype, \"originator\", void 0);\n__decorate([\n AsnProp({\n type: OctetString, context: 1, optional: true,\n })\n], KeyAgreeRecipientInfo.prototype, \"ukm\", void 0);\n__decorate([\n AsnProp({ type: KeyEncryptionAlgorithmIdentifier })\n], KeyAgreeRecipientInfo.prototype, \"keyEncryptionAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: RecipientEncryptedKeys })\n], KeyAgreeRecipientInfo.prototype, \"recipientEncryptedKeys\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, OctetString, } from \"@peculiar/asn1-schema\";\nimport { SubjectKeyIdentifier } from \"@peculiar/asn1-x509\";\nimport { CMSVersion, KeyEncryptionAlgorithmIdentifier, } from \"./types.js\";\nimport { IssuerAndSerialNumber } from \"./issuer_and_serial_number.js\";\nlet RecipientIdentifier = class RecipientIdentifier {\n subjectKeyIdentifier;\n issuerAndSerialNumber;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: SubjectKeyIdentifier, context: 0, implicit: true,\n })\n], RecipientIdentifier.prototype, \"subjectKeyIdentifier\", void 0);\n__decorate([\n AsnProp({ type: IssuerAndSerialNumber })\n], RecipientIdentifier.prototype, \"issuerAndSerialNumber\", void 0);\nRecipientIdentifier = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], RecipientIdentifier);\nexport { RecipientIdentifier };\nexport class KeyTransRecipientInfo {\n version = CMSVersion.v0;\n rid = new RecipientIdentifier();\n keyEncryptionAlgorithm = new KeyEncryptionAlgorithmIdentifier();\n encryptedKey = new OctetString();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], KeyTransRecipientInfo.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: RecipientIdentifier })\n], KeyTransRecipientInfo.prototype, \"rid\", void 0);\n__decorate([\n AsnProp({ type: KeyEncryptionAlgorithmIdentifier })\n], KeyTransRecipientInfo.prototype, \"keyEncryptionAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], KeyTransRecipientInfo.prototype, \"encryptedKey\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, OctetString, } from \"@peculiar/asn1-schema\";\nimport { OtherKeyAttribute } from \"./other_key_attribute.js\";\nimport { CMSVersion, KeyEncryptionAlgorithmIdentifier, } from \"./types.js\";\nexport class KEKIdentifier {\n keyIdentifier = new OctetString();\n date;\n other;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: OctetString })\n], KEKIdentifier.prototype, \"keyIdentifier\", void 0);\n__decorate([\n AsnProp({\n type: AsnPropTypes.GeneralizedTime, optional: true,\n })\n], KEKIdentifier.prototype, \"date\", void 0);\n__decorate([\n AsnProp({\n type: OtherKeyAttribute, optional: true,\n })\n], KEKIdentifier.prototype, \"other\", void 0);\nexport class KEKRecipientInfo {\n version = CMSVersion.v4;\n kekid = new KEKIdentifier();\n keyEncryptionAlgorithm = new KeyEncryptionAlgorithmIdentifier();\n encryptedKey = new OctetString();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], KEKRecipientInfo.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: KEKIdentifier })\n], KEKRecipientInfo.prototype, \"kekid\", void 0);\n__decorate([\n AsnProp({ type: KeyEncryptionAlgorithmIdentifier })\n], KEKRecipientInfo.prototype, \"keyEncryptionAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], KEKRecipientInfo.prototype, \"encryptedKey\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, OctetString, } from \"@peculiar/asn1-schema\";\nimport { CMSVersion, KeyDerivationAlgorithmIdentifier, KeyEncryptionAlgorithmIdentifier, } from \"./types.js\";\nexport class PasswordRecipientInfo {\n version = CMSVersion.v0;\n keyDerivationAlgorithm;\n keyEncryptionAlgorithm = new KeyEncryptionAlgorithmIdentifier();\n encryptedKey = new OctetString();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], PasswordRecipientInfo.prototype, \"version\", void 0);\n__decorate([\n AsnProp({\n type: KeyDerivationAlgorithmIdentifier, context: 0, optional: true,\n })\n], PasswordRecipientInfo.prototype, \"keyDerivationAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: KeyEncryptionAlgorithmIdentifier })\n], PasswordRecipientInfo.prototype, \"keyEncryptionAlgorithm\", void 0);\n__decorate([\n AsnProp({ type: OctetString })\n], PasswordRecipientInfo.prototype, \"encryptedKey\", void 0);\n","import { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { KeyAgreeRecipientInfo } from \"./key_agree_recipient_info.js\";\nimport { KeyTransRecipientInfo } from \"./key_trans_recipient_info.js\";\nimport { KEKRecipientInfo } from \"./kek_recipient_info.js\";\nimport { PasswordRecipientInfo } from \"./password_recipient_info.js\";\nexport class OtherRecipientInfo {\n oriType = \"\";\n oriValue = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], OtherRecipientInfo.prototype, \"oriType\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], OtherRecipientInfo.prototype, \"oriValue\", void 0);\nlet RecipientInfo = class RecipientInfo {\n ktri;\n kari;\n kekri;\n pwri;\n ori;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: KeyTransRecipientInfo, optional: true,\n })\n], RecipientInfo.prototype, \"ktri\", void 0);\n__decorate([\n AsnProp({\n type: KeyAgreeRecipientInfo, context: 1, implicit: true, optional: true,\n })\n], RecipientInfo.prototype, \"kari\", void 0);\n__decorate([\n AsnProp({\n type: KEKRecipientInfo, context: 2, implicit: true, optional: true,\n })\n], RecipientInfo.prototype, \"kekri\", void 0);\n__decorate([\n AsnProp({\n type: PasswordRecipientInfo, context: 3, implicit: true, optional: true,\n })\n], RecipientInfo.prototype, \"pwri\", void 0);\n__decorate([\n AsnProp({\n type: OtherRecipientInfo, context: 4, implicit: true, optional: true,\n })\n], RecipientInfo.prototype, \"ori\", void 0);\nRecipientInfo = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], RecipientInfo);\nexport { RecipientInfo };\n","var RecipientInfos_1;\nimport { __decorate } from \"tslib\";\nimport { AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { RecipientInfo } from \"./recipient_info.js\";\nlet RecipientInfos = RecipientInfos_1 = class RecipientInfos extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, RecipientInfos_1.prototype);\n }\n};\nRecipientInfos = RecipientInfos_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Set, itemType: RecipientInfo,\n })\n], RecipientInfos);\nexport { RecipientInfos };\n","var RevocationInfoChoices_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnType, AsnTypeTypes, AsnArray, } from \"@peculiar/asn1-schema\";\nimport { id_pkix } from \"@peculiar/asn1-x509\";\nexport const id_ri = `${id_pkix}.16`;\nexport const id_ri_ocsp_response = `${id_ri}.2`;\nexport const id_ri_scvp = `${id_ri}.4`;\nexport class OtherRevocationInfoFormat {\n otherRevInfoFormat = \"\";\n otherRevInfo = new ArrayBuffer(0);\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.ObjectIdentifier })\n], OtherRevocationInfoFormat.prototype, \"otherRevInfoFormat\", void 0);\n__decorate([\n AsnProp({ type: AsnPropTypes.Any })\n], OtherRevocationInfoFormat.prototype, \"otherRevInfo\", void 0);\nlet RevocationInfoChoice = class RevocationInfoChoice {\n other = new OtherRevocationInfoFormat();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n};\n__decorate([\n AsnProp({\n type: OtherRevocationInfoFormat, context: 1, implicit: true,\n })\n], RevocationInfoChoice.prototype, \"other\", void 0);\nRevocationInfoChoice = __decorate([\n AsnType({ type: AsnTypeTypes.Choice })\n], RevocationInfoChoice);\nexport { RevocationInfoChoice };\nlet RevocationInfoChoices = RevocationInfoChoices_1 = class RevocationInfoChoices extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, RevocationInfoChoices_1.prototype);\n }\n};\nRevocationInfoChoices = RevocationInfoChoices_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Set, itemType: RevocationInfoChoice,\n })\n], RevocationInfoChoices);\nexport { RevocationInfoChoices };\n","import { __decorate } from \"tslib\";\nimport { AsnProp } from \"@peculiar/asn1-schema\";\nimport { CertificateSet } from \"./certificate_choices.js\";\nimport { RevocationInfoChoices } from \"./revocation_info_choice.js\";\nexport class OriginatorInfo {\n certs;\n crls;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({\n type: CertificateSet, context: 0, implicit: true, optional: true,\n })\n], OriginatorInfo.prototype, \"certs\", void 0);\n__decorate([\n AsnProp({\n type: RevocationInfoChoices, context: 1, implicit: true, optional: true,\n })\n], OriginatorInfo.prototype, \"crls\", void 0);\n","var UnprotectedAttributes_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { CMSVersion } from \"./types.js\";\nimport { Attribute } from \"./attribute.js\";\nimport { RecipientInfos } from \"./recipient_infos.js\";\nimport { OriginatorInfo } from \"./originator_info.js\";\nimport { EncryptedContentInfo } from \"./encrypted_content_info.js\";\nlet UnprotectedAttributes = UnprotectedAttributes_1 = class UnprotectedAttributes extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, UnprotectedAttributes_1.prototype);\n }\n};\nUnprotectedAttributes = UnprotectedAttributes_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Set, itemType: Attribute,\n })\n], UnprotectedAttributes);\nexport { UnprotectedAttributes };\nexport class EnvelopedData {\n version = CMSVersion.v0;\n originatorInfo;\n recipientInfos = new RecipientInfos();\n encryptedContentInfo = new EncryptedContentInfo();\n unprotectedAttrs;\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], EnvelopedData.prototype, \"version\", void 0);\n__decorate([\n AsnProp({\n type: OriginatorInfo, context: 0, implicit: true, optional: true,\n })\n], EnvelopedData.prototype, \"originatorInfo\", void 0);\n__decorate([\n AsnProp({ type: RecipientInfos })\n], EnvelopedData.prototype, \"recipientInfos\", void 0);\n__decorate([\n AsnProp({ type: EncryptedContentInfo })\n], EnvelopedData.prototype, \"encryptedContentInfo\", void 0);\n__decorate([\n AsnProp({\n type: UnprotectedAttributes, context: 1, implicit: true, optional: true,\n })\n], EnvelopedData.prototype, \"unprotectedAttrs\", void 0);\n","var DigestAlgorithmIdentifiers_1;\nimport { __decorate } from \"tslib\";\nimport { AsnProp, AsnPropTypes, AsnArray, AsnType, AsnTypeTypes, } from \"@peculiar/asn1-schema\";\nimport { CertificateSet } from \"./certificate_choices.js\";\nimport { CMSVersion, DigestAlgorithmIdentifier } from \"./types.js\";\nimport { EncapsulatedContentInfo } from \"./encapsulated_content_info.js\";\nimport { RevocationInfoChoices } from \"./revocation_info_choice.js\";\nimport { SignerInfos } from \"./signer_info.js\";\nlet DigestAlgorithmIdentifiers = DigestAlgorithmIdentifiers_1 = class DigestAlgorithmIdentifiers extends AsnArray {\n constructor(items) {\n super(items);\n Object.setPrototypeOf(this, DigestAlgorithmIdentifiers_1.prototype);\n }\n};\nDigestAlgorithmIdentifiers = DigestAlgorithmIdentifiers_1 = __decorate([\n AsnType({\n type: AsnTypeTypes.Set, itemType: DigestAlgorithmIdentifier,\n })\n], DigestAlgorithmIdentifiers);\nexport { DigestAlgorithmIdentifiers };\nexport class SignedData {\n version = CMSVersion.v0;\n digestAlgorithms = new DigestAlgorithmIdentifiers();\n encapContentInfo = new EncapsulatedContentInfo();\n certificates;\n crls;\n signerInfos = new SignerInfos();\n constructor(params = {}) {\n Object.assign(this, params);\n }\n}\n__decorate([\n AsnProp({ type: AsnPropTypes.Integer })\n], SignedData.prototype, \"version\", void 0);\n__decorate([\n AsnProp({ type: DigestAlgorithmIdentifiers })\n], SignedData.prototype, \"digestAlgorithms\", void 0);\n__decorate([\n AsnProp({ type: EncapsulatedContentInfo })\n], SignedData.prototype, \"encapContentInfo\", void 0);\n__decorate([\n AsnProp({\n type: CertificateSet, context: 0, implicit: true, optional: true,\n })\n], SignedData.prototype, \"certificates\", void 0);\n__decorate([\n AsnProp({\n type: RevocationInfoChoices, context: 1, implicit: true, optional: true,\n })\n], SignedData.prototype, \"crls\", void 0);\n__decorate([\n AsnProp({ type: SignerInfos })\n], SignedData.prototype, \"signerInfos\", void 0);\n","import {p521,p384,p256}from'@noble/curves/nist.js';import {sha1}from'@noble/hashes/legacy.js';import {sha512,sha384,sha256,sha224}from'@noble/hashes/sha2.js';import {brainpoolP512r1,brainpoolP384r1,brainpoolP256r1}from'@noble/curves/misc.js';import {ecdsa,weierstrass}from'@noble/curves/abstract/weierstrass.js';import {AsnType,AsnTypeTypes,AsnProp,AsnPropTypes,AsnParser,AsnSerializer,AsnConvert,AsnArray}from'@peculiar/asn1-schema';import {Certificate,AuthorityKeyIdentifier,SubjectKeyIdentifier,PrivateKeyUsagePeriod,Time}from'@peculiar/asn1-x509';import {poseidon2HashAsync}from'@zkpassport/poseidon2';import {format}from'date-fns';import {bigIntToBuffer,requireFunction,requireNumber,requireTypes,requireObject,requireArray}from'@zk-kit/utils';import {hexToBytes}from'@noble/hashes/utils.js';import {ECParameters}from'@peculiar/asn1-ecc';import {RsaSaPssParams,RSAPublicKey}from'@peculiar/asn1-rsa';import {Attribute,DigestAlgorithmIdentifier,ContentInfo,SignedData}from'@peculiar/asn1-cms';var Ft=Object.defineProperty;var ni=Object.getOwnPropertyDescriptor;var oi=(e=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(e,{get:(t,r)=>(typeof require<\"u\"?require:t)[r]}):e)(function(e){if(typeof require<\"u\")return require.apply(this,arguments);throw Error('Dynamic require of \"'+e+'\" is not supported')});var Ut=(e,t)=>()=>(e&&(t=e(e=0)),t);var ai=(e,t)=>{for(var r in t)Ft(e,r,{get:t[r],enumerable:true});};var T=(e,t,r,i)=>{for(var n=i>1?void 0:i?ni(t,r):t,o=e.length-1,c;o>=0;o--)(c=e[o])&&(n=(i?c(t,r,n):c(n))||n);return i&&n&&Ft(t,r,n),n};var ne,ht,gr,yt,Oe,Za,fr,I,y,Sr,hr,yr,Cr,me=Ut(()=>{ne={\"1.3.14.3.2.26\":\"SHA-1\",\"2.16.840.1.101.3.4.2.1\":\"SHA-256\",\"2.16.840.1.101.3.4.2.2\":\"SHA-384\",\"2.16.840.1.101.3.4.2.3\":\"SHA-512\",\"2.16.840.1.101.3.4.2.4\":\"SHA-224\"},ht={\"1.2.840.10045.3.1.1\":\"P-192\",\"1.3.132.0.33\":\"P-224\",\"1.2.840.10045.3.1.7\":\"P-256\",\"1.3.132.0.34\":\"P-384\",\"1.3.132.0.35\":\"P-521\",\"1.3.36.3.3.2.8.1.1.1\":\"brainpoolP160r1\",\"1.3.36.3.3.2.8.1.1.2\":\"brainpoolP160t1\",\"1.3.36.3.3.2.8.1.1.3\":\"brainpoolP192r1\",\"1.3.36.3.3.2.8.1.1.4\":\"brainpoolP192t1\",\"1.3.36.3.3.2.8.1.1.5\":\"brainpoolP224r1\",\"1.3.36.3.3.2.8.1.1.6\":\"brainpoolP224t1\",\"1.3.36.3.3.2.8.1.1.7\":\"brainpoolP256r1\",\"1.3.36.3.3.2.8.1.1.8\":\"brainpoolP256t1\",\"1.3.36.3.3.2.8.1.1.9\":\"brainpoolP320r1\",\"1.3.36.3.3.2.8.1.1.10\":\"brainpoolP320t1\",\"1.3.36.3.3.2.8.1.1.11\":\"brainpoolP384r1\",\"1.3.36.3.3.2.8.1.1.12\":\"brainpoolP384t1\",\"1.3.36.3.3.2.8.1.1.13\":\"brainpoolP512r1\",\"1.3.36.3.3.2.8.1.1.14\":\"brainpoolP512t1\"},gr={\"1.2.840.113549.1.1.1\":\"rsaEncryption\",\"1.2.840.113549.1.1.10\":\"rsassa-pss\"},yt={\"1.2.840.113549.1.1.1\":\"rsaEncryption\",\"1.2.840.10045.2.1\":\"ecPublicKey\"},Oe={\"1.2.840.113549.1.1.5\":\"sha1-with-rsa-signature\",\"1.2.840.113549.1.1.11\":\"sha256WithRSAEncryption\",\"1.2.840.113549.1.1.12\":\"sha384WithRSAEncryption\",\"1.2.840.113549.1.1.13\":\"sha512WithRSAEncryption\",\"1.2.840.113549.1.1.10\":\"rsassa-pss\",\"1.2.840.10045.4.1\":\"ecdsa-with-SHA1\",\"1.2.840.10045.4.3.2\":\"ecdsa-with-SHA256\",\"1.2.840.10045.4.3.3\":\"ecdsa-with-SHA384\",\"1.2.840.10045.4.3.4\":\"ecdsa-with-SHA512\"},Za={\"1.2.840.113549.1.1.1\":\"rsaEncryption\",\"1.2.840.10045.2.1\":\"ecPublicKey\",\"1.2.840.113549.1.1.5\":\"sha1-with-rsa-signature\",\"1.2.840.113549.1.1.11\":\"sha256WithRSAEncryption\",\"1.2.840.113549.1.1.12\":\"sha384WithRSAEncryption\",\"1.2.840.113549.1.1.13\":\"sha512WithRSAEncryption\",\"1.2.840.113549.1.1.10\":\"rsassa-pss\",\"1.2.840.10045.4.1\":\"ecdsa-with-SHA1\",\"1.2.840.10045.4.3.2\":\"ecdsa-with-SHA256\",\"1.2.840.10045.4.3.3\":\"ecdsa-with-SHA384\",\"1.2.840.10045.4.3.4\":\"ecdsa-with-SHA512\"},fr={\"sha1-with-rsa-signature\":\"SHA-1\",sha256WithRSAEncryption:\"SHA-256\",sha384WithRSAEncryption:\"SHA-384\",sha512WithRSAEncryption:\"SHA-512\",\"ecdsa-with-SHA1\":\"SHA-1\",\"ecdsa-with-SHA256\":\"SHA-256\",\"ecdsa-with-SHA384\":\"SHA-384\",\"ecdsa-with-SHA512\":\"SHA-512\"},I={\"P-192\":{a:0xfffffffffffffffffffffffffffffffefffffffffffffffcn,b:0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1n,n:0xffffffffffffffffffffffff99def836146bc9b1b4d22831n,p:0xfffffffffffffffffffffffffffffffeffffffffffffffffn},\"P-224\":{a:0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffen,b:0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4n,n:0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3dn,p:0xffffffffffffffffffffffffffffffff000000000000000000000001n},\"P-256\":{a:p256.Point.CURVE().a,b:p256.Point.CURVE().b,n:p256.Point.CURVE().n,p:p256.Point.CURVE().p},\"P-384\":{a:p384.Point.CURVE().a,b:p384.Point.CURVE().b,n:p384.Point.CURVE().n,p:p384.Point.CURVE().p},\"P-521\":{a:p521.Point.CURVE().a,b:p521.Point.CURVE().b,n:p521.Point.CURVE().n,p:p521.Point.CURVE().p}},y={brainpoolP160r1:{a:0x340e7be2a280eb74e2be61bada745d97e8f7c300n,b:0x1e589a8595423412134faa2dbdec95c8d8675e58n,n:0xe95e4a5f737059dc60df5991d45029409e60fc09n,p:0xe95e4a5f737059dc60dfc7ad95b3d8139515620fn},brainpoolP160t1:{a:0xe95e4a5f737059dc60dfc7ad95b3d8139515620cn,b:0x7a556b6dae535b7b51ed2c4d7daa7a0b5c55f380n,n:0xe95e4a5f737059dc60df5991d45029409e60fc09n,p:0xe95e4a5f737059dc60dfc7ad95b3d8139515620fn},brainpoolP192r1:{a:0x6a91174076b1e0e19c39c031fe8685c1cae040e5c69a28efn,b:0x469a28ef7c28cca3dc721d044f4496bcca7ef4146fbf25c9n,n:0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1n,p:0xc302f41d932a36cda7a3463093d18db78fce476de1a86297n},brainpoolP192t1:{a:0xc302f41d932a36cda7a3463093d18db78fce476de1a86294n,b:0x13d56ffaec78681e68f9deb43b35bec2fb68542e27897b79n,n:0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1n,p:0xc302f41d932a36cda7a3463093d18db78fce476de1a86297n},brainpoolP224r1:{a:0x68a5e62ca9ce6c1c299803a6c1530b514e182ad8b0042a59cad29f43n,b:0x2580f63ccfe44138870713b1a92369e33e2135d266dbb372386c400bn,n:0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939fn,p:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ffn},brainpoolP224t1:{a:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0fcn,b:0x4b337d934104cd7bef271bf60ced1ed20da14c08b3bb64f18a60888dn,n:0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939fn,p:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ffn},brainpoolP256r1:{a:0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9n,b:0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6n,n:0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7n,p:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377n},brainpoolP256t1:{a:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5374n,b:0x662c61c430d84ea4fe66a7733d0b76b7bf93ebc4af2f49256ae58101fee92b04n,n:0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7n,p:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377n},brainpoolP320r1:{a:0x3ee30b568fbab0f883ccebd46d3f3bb8a2a73513f5eb79da66190eb085ffa9f492f375a97d860eb4n,b:0x520883949dfdbc42d3ad198640688a6fe13f41349554b49acc31dccd884539816f5eb4ac8fb1f1a6n,n:0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59311n,p:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e27n},brainpoolP320t1:{a:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e24n,b:0xa7f561e038eb1ed560b3d147db782013064c19f27ed27c6780aaf77fb8a547ceb5b4fef422340353n,n:0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59311n,p:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e27n},brainpoolP384r1:{a:0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826n,b:0x4a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11n,n:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565n,p:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53n},brainpoolP384t1:{a:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec50n,b:0x7f519eada7bda81bd826dba647910f8c4b9346ed8ccdc64e4b1abd11756dce1d2074aa263b88805ced70355a33b471een,n:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565n,p:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53n},brainpoolP512r1:{a:0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94can,b:0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723n,n:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069n,p:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n},brainpoolP512t1:{a:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n,b:0x7cbbbcf9441cfab76e1890e46884eae321f70c0bcb4981527897504bec3e36a62bcdfa2304976540f6450085f2dae145c22553b465763689180ea2571867423en,n:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069n,p:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n}},Sr={brainpoolP160r1:\"BP-R-160\",brainpoolP160t1:\"BP-T-160\",brainpoolP192r1:\"BP-R-192\",brainpoolP192t1:\"BP-T-192\",brainpoolP224r1:\"BP-R-224\",brainpoolP224t1:\"BP-T-224\",brainpoolP256r1:\"BP-R-256\",brainpoolP256t1:\"BP-T-256\",brainpoolP320r1:\"BP-R-320\",brainpoolP320t1:\"BP-T-320\",brainpoolP384r1:\"BP-R-384\",brainpoolP384t1:\"BP-T-384\",brainpoolP512r1:\"BP-R-512\",brainpoolP512t1:\"BP-T-512\"},hr=\"2.5.29.35\",yr=\"2.5.29.14\",Cr=\"2.5.29.16\";});var qr={};ai(qr,{verifyDscSignature:()=>$1,verifyDscSignatureWithTbs:()=>q1,verifyECDSASignature:()=>wt,verifyRSASignature:()=>Kt});function Qr(e){return e<=192?[\"SHA-1\",\"SHA-224\",\"SHA-256\",\"SHA-384\",\"SHA-512\"]:e<=256?[\"SHA-256\",\"SHA-1\",\"SHA-224\",\"SHA-384\",\"SHA-512\"]:e<=384?[\"SHA-384\",\"SHA-256\",\"SHA-512\",\"SHA-1\",\"SHA-224\"]:[\"SHA-512\",\"SHA-384\",\"SHA-256\",\"SHA-1\",\"SHA-224\"]}function O1(e,t){if(e.length===t*2||e[0]!==48)return e;let r=e[1]===e.length-2?1:2,i=e[r];if(e[r+1]!==2||i!==e.length-r-1)return e;let n=e[r+2],o=e.slice(r+3,r+3+n);if(e[r+3+n]!==2)return e;let c=e[r+3+n+1],a=e.slice(r+3+n+2,r+3+n+2+c);for(;o.length>0&&o[0]===0;)o=o.slice(1);for(;a.length>0&&a[0]===0;)a=a.slice(1);let s=new Uint8Array(t),d=new Uint8Array(t);s.set(o,t-o.length),d.set(a,t-a.length);let l=new Uint8Array(t*2);return l.set(s,0),l.set(d,t),l}function wt(e,t,r){let i=K1[r.curve];if(!i)return false;try{let n=Math.ceil(r.key_size/8),o=O1(t,n),c=Buffer.from(r.public_key_x.replace(\"0x\",\"\"),\"hex\"),a=Buffer.from(r.public_key_y.replace(\"0x\",\"\"),\"hex\"),s=new Uint8Array(n),d=new Uint8Array(n);s.set(c,n-c.length),d.set(a,n-a.length);let l=new Uint8Array(1+n*2);return l[0]=4,l.set(s,1),l.set(d,1+n),i.verify(o,e,l,{prehash:!1,lowS:!1})}catch{return false}}async function Kt(e,t,r,i,n,o){try{if(k1.includes(n)){let a=G1();if(a)return await F1(e,r,i,n,o,a)}return U1(t,r,i,n,o)}catch{return false}}function H1(e){if(e===0)return new Uint8Array([0]);let t=[];for(;e>0;)t.unshift(e&255),e=e>>>8;return new Uint8Array(t)}function G1(){return typeof globalThis<\"u\"&&globalThis.crypto?.subtle?globalThis.crypto.subtle:typeof globalThis<\"u\"&&globalThis.crypto?.webcrypto?.subtle?globalThis.crypto.webcrypto.subtle:null}async function F1(e,t,r,i,n,o){let c=new Uint8Array(Buffer.from(r.modulus.replace(\"0x\",\"\"),\"hex\")),a=H1(r.exponent),s={kty:\"RSA\",n:Wr(c),e:Wr(a),alg:n?`PS${i.replace(\"SHA-\",\"\")}`:`RS${i.replace(\"SHA-\",\"\")}`,ext:true},d=n?{name:\"RSA-PSS\",hash:{name:i}}:{name:\"RSASSA-PKCS1-v1_5\",hash:{name:i}},l=n?{name:\"RSA-PSS\",saltLength:$r(i)}:{name:\"RSASSA-PKCS1-v1_5\"};try{let u=await o.importKey(\"jwk\",s,d,!1,[\"verify\"]),m=new Uint8Array(t).buffer,g=new Uint8Array(e).buffer;return await o.verify(l,u,m,g)}catch{return false}}function Wr(e){return Buffer.from(e).toString(\"base64\").replace(/\\+/g,\"-\").replace(/\\//g,\"_\").replace(/=/g,\"\")}function $r(e){switch(e){case \"SHA-1\":return 20;case \"SHA-224\":return 28;case \"SHA-256\":return 32;case \"SHA-384\":return 48;case \"SHA-512\":return 64;default:return 32}}function U1(e,t,r,i,n){try{let o=BigInt(r.modulus),c=BigInt(r.exponent),a=Math.ceil(r.key_size/8);if(t.length!==a)if(t.length<a){let m=new Uint8Array(a);m.set(t,a-t.length),t=m;}else return !1;let s=BigInt(0);for(let m of t)s=s<<BigInt(8)|BigInt(m);if(s>=o)return !1;let d=X1(s,c,o),l=new Uint8Array(a),u=d;for(let m=a-1;m>=0;m--)l[m]=Number(u&BigInt(255)),u=u>>BigInt(8);return n?j1(l,e,i,r.key_size):z1(l,e,i)}catch{return false}}function X1(e,t,r){if(r===BigInt(1))return BigInt(0);let i=BigInt(1);for(e=e%r;t>BigInt(0);)t%BigInt(2)===BigInt(1)&&(i=i*e%r),t=t>>BigInt(1),e=e*e%r;return i}function z1(e,t,r){if(e[0]!==0||e[1]!==1)return false;let i=2;for(;i<e.length&&e[i]===255;)i++;if(i-2<V1||i>=e.length||e[i]!==0)return false;i++;let o=e.slice(i),c=L1[r];if(zr(o,t,c))return true;let a=W1[r];return !!zr(o,t,a)}function zr(e,t,r){if(e.length!==r.length+t.length)return false;let i=0;for(let n=0;n<r.length;n++)i|=e[n]^r[n];for(let n=0;n<t.length;n++)i|=e[r.length+n]^t[n];return i===0}function j1(e,t,r,i){let n=vt[r],o=$r(r),c=i-1,a=Math.ceil(c/8);if(a<o+2)return false;let s=e.length>a?e.slice(e.length-a):e;if(s.length<a||s[a-1]!==188)return false;let d=a-o-1,l=s.slice(0,d),u=s.slice(d,d+o),g=255>>8*a-c;if((l[0]&~g)!==0)return false;let h=Q1(u,d,n),N=new Uint8Array(d);for(let A=0;A<d;A++)N[A]=l[A]^h[A];N[0]&=g;let B=-1;for(let A=0;A<d;A++)if(N[A]===1){B=A;break}else if(N[A]!==0)return false;if(B===-1)return false;let H=d-B-1;if(H<0)return false;let J=N.slice(B+1),z=new Uint8Array(8+o+H);z.set(t,8),H>0&&z.set(J,8+o);let ee=n(z);if(u.length!==ee.length)return false;let te=0;for(let A=0;A<u.length;A++)te|=u[A]^ee[A];return te===0}function Q1(e,t,r){let i=r(new Uint8Array(0)).length,n=new Uint8Array(t),o=0;for(let c=0;o<t;c++){let a=new Uint8Array(4);a[0]=c>>24&255,a[1]=c>>16&255,a[2]=c>>8&255,a[3]=c&255;let s=new Uint8Array(e.length+4);s.set(e),s.set(a,e.length);let d=r(s),l=Math.min(i,t-o);n.set(d.slice(0,l),o),o+=l;}return n}async function $1(e,t){let r=e.tbs.bytes.toUInt8Array(),i=e.signature.toUInt8Array(),n=t.public_key.type===\"EC\",o=t.signature_algorithm===\"RSA-PSS\",c=t.public_key.key_size,a=Qr(c),s=t.hash_algorithm;if(s&&!a.includes(s))a.unshift(s);else if(s){let d=a.indexOf(s);d>0&&(a.splice(d,1),a.unshift(s));}for(let d of a){let l=vt[d];if(!l)continue;let u=l(r);if(n){let m=t.public_key;if(wt(u,i,m))return true}else {let m=t.public_key;if(await Kt(r,u,i,m,d,o))return true}}return false}async function q1(e,t,r){let i=r.public_key.type===\"EC\",n=r.signature_algorithm===\"RSA-PSS\",o=r.public_key.key_size,c=Qr(o),a=r.hash_algorithm;if(a){let s=c.indexOf(a);s>0?(c.splice(s,1),c.unshift(a)):s===-1&&c.unshift(a);}for(let s of c){let d=vt[s];if(!d)continue;let l=d(e);if(i){let u=r.public_key;if(wt(l,t,u))return true}else {let u=r.public_key;if(await Kt(e,l,t,u,s,n))return true}}return false}var vt,M1,B1,_1,R1,v1,w1,K1,k1,L1,V1,W1,Ot=Ut(()=>{me();vt={\"SHA-1\":sha1,\"SHA-224\":sha224,\"SHA-256\":sha256,\"SHA-384\":sha384,\"SHA-512\":sha512},M1={p:y.brainpoolP224r1.p,a:y.brainpoolP224r1.a,b:y.brainpoolP224r1.b,n:y.brainpoolP224r1.n,h:BigInt(1),Gx:BigInt(\"0xd9029ad2c7e5cf4340823b2a87dc68c9e4ce3174c1e6efdee12c07d\"),Gy:BigInt(\"0x58aa56f772c0726f24c6b89e4ecdac24354b9e99caa3f6d3761402cd\")},B1=ecdsa(weierstrass(M1),sha224),_1={p:I[\"P-192\"].p,a:I[\"P-192\"].a,b:I[\"P-192\"].b,n:I[\"P-192\"].n,h:BigInt(1),Gx:BigInt(\"0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012\"),Gy:BigInt(\"0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811\")},R1=ecdsa(weierstrass(_1),sha1),v1={p:I[\"P-224\"].p,a:I[\"P-224\"].a,b:I[\"P-224\"].b,n:I[\"P-224\"].n,h:BigInt(1),Gx:BigInt(\"0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21\"),Gy:BigInt(\"0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34\")},w1=ecdsa(weierstrass(v1),sha224),K1={\"P-192\":R1,\"P-224\":w1,\"P-256\":p256,\"P-384\":p384,\"P-521\":p521,brainpoolP224r1:B1,brainpoolP256r1:brainpoolP256r1,brainpoolP384r1:brainpoolP384r1,brainpoolP512r1:brainpoolP512r1};k1=[\"SHA-256\",\"SHA-384\",\"SHA-512\"];L1={\"SHA-1\":new Uint8Array([48,33,48,9,6,5,43,14,3,2,26,5,0,4,20]),\"SHA-224\":new Uint8Array([48,45,48,13,6,9,96,134,72,1,101,3,4,2,4,5,0,4,28]),\"SHA-256\":new Uint8Array([48,49,48,13,6,9,96,134,72,1,101,3,4,2,1,5,0,4,32]),\"SHA-384\":new Uint8Array([48,65,48,13,6,9,96,134,72,1,101,3,4,2,2,5,0,4,48]),\"SHA-512\":new Uint8Array([48,81,48,13,6,9,96,134,72,1,101,3,4,2,3,5,0,4,64])},V1=8,W1={\"SHA-1\":new Uint8Array([48,31,48,7,6,5,43,14,3,2,26,4,20]),\"SHA-224\":new Uint8Array([48,43,48,11,6,9,96,134,72,1,101,3,4,2,4,4,28]),\"SHA-256\":new Uint8Array([48,47,48,11,6,9,96,134,72,1,101,3,4,2,1,4,32]),\"SHA-384\":new Uint8Array([48,63,48,11,6,9,96,134,72,1,101,3,4,2,2,4,48]),\"SHA-512\":new Uint8Array([48,79,48,11,6,9,96,134,72,1,101,3,4,2,3,4,64])};});var ci=6n;function si(e){return e.toString(2).length}function di(e){return (e.startsWith(\"0x\")?e.slice(2):e).match(/.{1,2}/g).map(r=>parseInt(r,16))}function Xt(e){return BigInt(`0x${e.map(t=>t.toString(16).padStart(2,\"0\")).join(\"\")}`)}function li(e){return e.length%2===0?e:`0${e}`}function ui(e){let t=e.toString(2).length;return (1n<<BigInt(t*2+Number(ci)))/e}function pi(e,t){let r=Math.floor(t/120)+(t%120!==0?1:0),i=(1n<<120n)-1n,n=[];for(let o=0;o<r;o++){let c=e&i;e=e>>120n,n.push(c);}return n}function mi(e,t){let r=ui(e),i=pi(r,t),n=t/8+(t%8!==0?1:0);return i.reverse().map((o,c)=>{let a=o.toString(16),s=c===0?a.padStart(n%15,\"0\"):a.padStart(30,\"0\");return di(li(s))}).flat()}function Ye(e){let t;return Buffer.isBuffer(e)?t=Xt(Array.from(e)):t=Xt(e),mi(t,si(t))}var p=class e{constructor(t){this.bytes=e.convertToBytes(t);}static convertToBytes(t){if(typeof t==\"bigint\"||typeof t==\"number\"){let r=t.toString(16),i=r.padStart(Math.ceil(r.length/2)*2,\"0\");return new Uint8Array(i.match(/.{1,2}/g)?.map(n=>parseInt(n,16))||[])}if(t instanceof Uint8Array)return new Uint8Array(t);if(Buffer.isBuffer(t))return new Uint8Array(t);if(Array.isArray(t)){if(!t.every(r=>typeof r==\"number\"&&r>=0&&r<=255))throw new Error(\"Invalid byte array: values must be between 0 and 255\");return new Uint8Array(t)}if(t instanceof ArrayBuffer)return new Uint8Array(t);if(typeof t==\"string\"){if(e.isHexString(t)){let r=t.startsWith(\"0x\")?t.slice(2):t,i=r.padStart(Math.ceil(r.length/2)*2,\"0\");return new Uint8Array(i.match(/.{1,2}/g)?.map(n=>parseInt(n,16))||[])}try{let r=BigInt(t);return e.convertToBytes(r)}catch{return new Uint8Array(Buffer.from(t,\"ascii\"))}}throw new Error(\"Unsupported data type\")}static isHexString(t){let r=t.startsWith(\"0x\")?t.slice(2):t;return /^[0-9a-fA-F]*$/.test(r)}static from(t){return new e(t)}static fromHex(t){if(!e.isHexString(t))throw new Error(\"Invalid hex string\");return new e(t.startsWith(\"0x\")?t:\"0x\"+t)}static fromBuffer(t){return new e(t)}static fromBase64(t){let r=atob(t);return new e(Uint8Array.from(r,i=>i.charCodeAt(0)))}static empty(){return new e(new Uint8Array(0))}static zero(t){return new e(new Uint8Array(t))}toBigInt(){return BigInt(\"0x\"+this.toHex().slice(2))}toUInt8Array(){return new Uint8Array(this.bytes)}toNumberArray(){return Array.from(this.bytes)}toHex(){return \"0x\"+Array.from(this.bytes).map(t=>t.toString(16).padStart(2,\"0\")).join(\"\")}toBuffer(){return Buffer.from(this.bytes)}toString(t=\"hex\"){return t===\"hex\"?this.toHex().slice(2):Buffer.from(this.bytes).toString(t)}toBase64(){return btoa(String.fromCharCode(...this.bytes))}toJSON(){return this.toHex()}[Symbol.for(\"nodejs.util.inspect.custom\")](){return `Binary(${this.toHex()})`}[Symbol.toPrimitive](t){switch(t){case \"number\":return Number(this.toBigInt());case \"string\":return `Binary(${this.toHex()})`;default:return this.toBigInt()}}valueOf(){return this.toBigInt()}get length(){return this.bytes.length}*[Symbol.iterator](){yield*this.bytes;}equals(t){return this.length!==t.length?false:this.bytes.every((r,i)=>r===t.bytes[i])}slice(t,r){return new e(this.bytes.slice(t,r))}concat(t){return new e([...this.toNumberArray(),...t.toNumberArray()])}[Symbol.for(\"+\")](t){return this.concat(t)}compare(t){let r=Math.min(this.length,t.length);for(let i=0;i<r;i++){let n=this.bytes[i]-t.bytes[i];if(n!==0)return n}return this.length-t.length}xor(t){if(this.length!==t.length)throw new Error(\"Binary instances must be of equal length for XOR operation\");let r=new Uint8Array(this.length);for(let i=0;i<this.length;i++)r[i]=this.bytes[i]^t.bytes[i];return new e(r)}and(t){if(this.length!==t.length)throw new Error(\"Binary instances must be of equal length for AND operation\");let r=new Uint8Array(this.length);for(let i=0;i<this.length;i++)r[i]=this.bytes[i]&t.bytes[i];return new e(r)}or(t){if(this.length!==t.length)throw new Error(\"Binary instances must be of equal length for OR operation\");let r=new Uint8Array(this.length);for(let i=0;i<this.length;i++)r[i]=this.bytes[i]|t.bytes[i];return new e(r)}not(){let t=new Uint8Array(this.length);for(let r=0;r<this.length;r++)t[r]=~this.bytes[r]&255;return new e(t)}padStart(t,r=0){if(this.length>=t)return this;let i=new Uint8Array(t);return i.fill(r,0,t-this.length),i.set(this.bytes,t-this.length),new e(i)}padEnd(t,r=0){if(this.length>=t)return this;let i=new Uint8Array(t);return i.set(this.bytes),i.fill(r,this.length),new e(i)}};var le=class{constructor(t,r=2){this.depth=t,this.arity=r,this.zeroes=[],this.nodes=[];}get root(){return `0x${this.nodes[this.depth][0].toString(16).padStart(64,\"0\")}`}get leaves(){return this.nodes[0].slice()}async initialize(t,r=[]){if(r.length>this.arity**this.depth)throw new Error(`The tree cannot contain more than ${this.arity**this.depth} leaves`);if(new Set(r.map(n=>n.toString())).size!==r.length)throw new Error(\"Duplicate leaves\");for(let n=0;n<this.depth;n+=1)this.zeroes.push(t),this.nodes[n]=[],t=await poseidon2HashAsync(Array(this.arity).fill(t).map(o=>BigInt(o)));if(this.nodes[this.depth]=[],r.length>0){this.nodes[0]=r;for(let n=0;n<this.depth;n+=1)for(let o=0;o<Math.ceil(this.nodes[n].length/this.arity);o+=1){let c=o*this.arity,a=[];for(let s=0;s<this.arity;s+=1)a.push(this.nodes[n][c+s]??this.zeroes[n]);this.nodes[n+1][o]=await poseidon2HashAsync(a.map(s=>BigInt(s)));}}else this.nodes[this.depth][0]=t;}serialize(){return this.nodes.map(t=>t.map(r=>`0x${r.toString(16).padStart(64,\"0\")}`))}};var Vt=\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";var Te=[18,32];function gi(e){if(!e||typeof e!=\"string\")throw new Error(\"Input must be a non-empty string\");let t=new Uint8Array(34),r=BigInt(0);for(let n=0;n<e.length;n++){let o=e[n],c=Vt.indexOf(o);if(c===-1)throw new Error(`Invalid base58 character: ${o}`);r=r*BigInt(58)+BigInt(c);}for(let n=t.length-1;r>0n&&n>=0;n--)t[n]=Number(r&BigInt(255)),r=r>>BigInt(8);let i=0;for(let n=0;n<e.length&&e[n]===\"1\";n++)i++;for(let n=0;n<i&&n<t.length;n++)t[n]=0;return t}function fi(e){if(!(e instanceof Uint8Array))throw new Error(\"Input must be a Uint8Array\");if(e.length===0)return \"\";let t=0;for(;t<e.length&&e[t]===0;)t++;let r=BigInt(0);for(let o=t;o<e.length;o++)r=r*BigInt(256)+BigInt(e[o]);let i=\"\";for(;r>0n;){let o=Number(r%BigInt(58));i=Vt[o]+i,r=r/BigInt(58);}return \"1\".repeat(t)+i}function Si(e){if(!e||typeof e!=\"string\")throw new Error(\"CID must be a non-empty string\");if(!e.startsWith(\"Qm\"))throw new Error('Invalid CID format: expected a CIDv0 starting with \"Qm\"');let t=gi(e);if(t.length<2||t[0]!==Te[0]||t[1]!==Te[1])throw new Error(\"Invalid CIDv0: missing or incorrect sha2-256 multihash prefix\");let r=\"0x\";for(let i=2;i<t.length;i++)r+=t[i].toString(16).padStart(2,\"0\").toUpperCase();return r}function hi(e){if(!e||typeof e!=\"string\")throw new Error(\"Input must be a non-empty hex string\");if(!e.match(/^(0x)?[0-9a-fA-F]+$/i))throw new Error(\"Invalid hex string format\");e=e.startsWith(\"0x\")?e.substring(2):e,e.length>64?e=e.substring(e.length-64):e.length<64&&(e=e.padStart(64,\"0\"));let t=new Uint8Array(34);t[0]=Te[0],t[1]=Te[1];for(let r=0;r<e.length;r+=2){let i=parseInt(e.substring(r,r+2),16);t[2+r/2]=i;}return fi(t)}var Je=16,zt=12,et=1,tt=2,rt=3,it=4,nt=5,ot=1,Tn=2,Ze=[\"ICAO\",\"DE\",\"NL\",\"IT\",\"ES\",\"CH\",\"SE\",\"IN\",\"BD\"],Dn=1,Nn=2;function xn(e){let t=0n;for(let r of e){let i=Ze.indexOf(r);if(i===-1)throw new Error(`Invalid tag: ${r}`);t|=0xffn<<BigInt(i*8);}return t}function Mn(e){let t=[];for(let r=0;r<Ze.length;r++){let i=0xffn<<BigInt(r*8);(e&i)===i&&t.push(Ze[r]);}return t}function De(e,t=253){let r=Math.pow(26,2),i=Math.ceil(r/t),n=Array(i).fill(0n),o=65;for(let c of e){let a=(c.charCodeAt(0)-o)*26+c.charCodeAt(1)-o,s=Math.floor(a/t);n[s]|=1n<<BigInt(a%t);}return n}function Bn(e,t=253){let r=Math.pow(26,2),i=Math.ceil(r/t),n=[],o=65;for(let c=0;c<i;c++)for(let a=0;a<t;a++){let s=c*t+a,d=Math.floor(s/t);if((e[d]&1n<<BigInt(s%t))===0n)continue;let l=String.fromCharCode(Math.floor(s/26)+o),u=String.fromCharCode(s%26+o);n.push(`${l}${u}`);}return n}function _n(e){let t={\"SHA-1\":et,\"SHA-224\":tt,\"SHA-256\":rt,\"SHA-384\":it,\"SHA-512\":nt};if(t[e]===void 0)throw new Error(`Unsupported hash algorithm: ${e}`);return t[e]}function yi(e){if(e.type===\"RSA\")return p.from(e.modulus).toUInt8Array();if(e.type===\"EC\")return p.from(e.public_key_x).concat(p.from(e.public_key_y)).toUInt8Array();throw new Error(\"Unsupported signature algorithm\")}async function at(e,t){let r=t?.version??0;ie(r===0||r===1,`Unsupported Packaged Certificates version: ${r}`);let i=t?.tags?De(t.tags):e?.tags?De(e.tags):[0n,0n,0n];ie(i.length===3,\"Tags must be exactly 3 fields\");let n=t?.type??ot;ie(n>=0&&n<=255,`Certificate type must fit in a single byte: ${n}`),ie(e?.country?.length===3,`Country code must be 3 characters: ${e?.country}`);let o=yi(e.public_key);if(r===0)return poseidon2HashAsync([...i,BigInt(C(new Uint8Array([n,e.country.charCodeAt(0),e.country.charCodeAt(1),e.country.charCodeAt(2)]),31)[0]),...C(o,31).map(c=>BigInt(c))]);if(r===1){ie(e.fingerprint!==void 0,\"Certificate fingerprint required\");let c=BigInt(e.fingerprint),a=new Uint8Array(4);return a[0]=e.validity.not_after>>24&255,a[1]=e.validity.not_after>>16&255,a[2]=e.validity.not_after>>8&255,a[3]=e.validity.not_after&255,poseidon2HashAsync([...i,BigInt(C(new Uint8Array([n,e.country.charCodeAt(0),e.country.charCodeAt(1),e.country.charCodeAt(2),...a]),31)[0]),c,...C(o,31).map(s=>BigInt(s))])}else throw new Error(`Unsupported Packaged Certificates version: ${r}`)}async function ct(e,t=0){let r=await Promise.all(e.map(i=>at(i,{version:t})));return r.sort((i,n)=>i>n?1:i<n?-1:0),r}async function jt(e,t=0){let r=await ct(e,t),i=new le(Je,2);return await i.initialize(0n,r),i}async function Rn(e,t=0){return (await jt(e,t)).root}async function vn(e){return (await jt(e.certificates,e.version)).root}async function wn(e){let t;if(e.circuits!==void 0)t=e.circuits.map(i=>BigInt(i.vkey_hash));else if(e.hashes!==void 0)t=e.hashes.map(i=>BigInt(i));else throw new Error(\"Either circuits or hashes must be provided\");t.sort((i,n)=>i>n?1:i<n?-1:0);let r=new le(zt,2);return await r.initialize(0n,t),r.root}function Ci(e){let t;if(e.circuits!==void 0)t=Object.values(e.circuits).map(r=>BigInt(r.hash));else throw new Error(\"Circuits must be provided\");return t.sort((r,i)=>r>i?1:r<i?-1:0),t}async function Kn(e,t,r=Ne){let i=Ci(t),n=i.findIndex(o=>o===BigInt(e));return r(i,n,zt)}var st=class{constructor(t){this.concurrency=t;this.queue=[];this.activePromises=0;this.onCompletionCallbacks=[];this._errors=[];this.isClosed=false;}async add(t){if(this.isClosed)throw new Error(\"Cannot add to closed PromisePool\");if(this.activePromises>=this.concurrency)return new Promise((r,i)=>{this.queue.push(async()=>{try{await t(),r();}catch(n){this._errors.push(n instanceof Error?n:new Error(String(n))),i(n);}});});this.activePromises++;try{await t();}catch(r){throw this._errors.push(r instanceof Error?r:new Error(String(r))),r}finally{if(this.activePromises--,this.queue.length>0){let r=this.queue.shift();this.add(()=>r());}else this.activePromises===0&&this.notifyCompletion();}}notifyCompletion(){for(let t of this.onCompletionCallbacks)t();this.onCompletionCallbacks=[];}async await(){if(!(this.activePromises===0&&this.queue.length===0))return new Promise(t=>{this.onCompletionCallbacks.push(t);})}async drain(){if(this.isClosed=true,await this.await(),this._errors.length>0)throw new Qt(this._errors,\"Errors occurred during execution\")}get active(){return this.activePromises}get queued(){return this.queue.length}get size(){return this.activePromises+this.queue.length}get hasErrors(){return this._errors.length>0}get errors(){return [...this._errors]}},dt=class extends Error{constructor(t,r){super(r),this.name=\"AggregateError\",this.errors=t;}},Qt=typeof globalThis<\"u\"&&\"AggregateError\"in globalThis?globalThis.AggregateError:dt;function Xn(e){let t=e;t.reverse();let r=t.toString(\"hex\");return r.length===0?BigInt(0):BigInt(`0x${r}`)}function Ln(e){let t=e.toString(\"hex\");return t.length===0?BigInt(0):BigInt(`0x${t}`)}function Vn(e,t){if(e<BigInt(0))throw new Error(`Cannot convert negative bigint ${e.toString()} to buffer with toBufferLE.`);let r=e.toString(16),i=Buffer.from(r.padStart(t*2,\"0\").slice(0,t*2),\"hex\");return i.reverse(),i}function Wn(e,t){if(e<BigInt(0))throw new Error(`Cannot convert negative bigint ${e.toString()} to buffer with toBufferBE.`);let r=e.toString(16),i=Buffer.from(r.padStart(t*2,\"0\").slice(0,t*2),\"hex\");if(i.length>t)throw new Error(`Number ${e.toString(16)} does not fit in ${t}`);return i}function zn(e,t=false){let r=e.toString(16),i=r.length%2===0?r.length:r.length+1;return `0x${r.padStart(t?64:i,\"0\")}`}function jn(e){if(!/^(0x)?[0-9a-fA-F]*$/.test(e)||e.length%2!==0)throw new Error(`Invalid hex string: ${e}`);return Buffer.from(e.replace(/^0x/i,\"\"),\"hex\")}function Qn(e){return e.startsWith(\"0x\")?e.slice(2):e}function lt(e){let t=typeof e==\"bigint\"?e.toString(16):e;return `0x${t.toLowerCase().padStart(t.length%2?t.length+1:t.length,\"0\")}`}function ut(e){return BigInt(\"0x\"+Buffer.from(e).toString(\"hex\"))}function pt(e){return BigInt(\"0x\"+Buffer.from(e).toString(\"hex\"))}function P(e,t){return e.concat(Array(t-e.length).fill(0))}function $n(e,t){return e.concat(Array(t-e.length).fill(\"\\0\\0\\0\"))}function x(e,t){return Array(t-e.length).fill(0).concat(e)}function Me(e){return e.toString(2).length}function Q(e,t,r=0){for(let i=r;i<e.length;i++)if(e.slice(i,i+t.length).every((n,o)=>n===t[o]))return i;return -1}function Be(e){return Array.from(bigIntToBuffer(e))}function $t(e){return Number(e)}function ie(e,t){if(!e)throw new Error(t)}function M(e,t){let r=BigInt(0);for(let i=0;i<t;i++)r*=BigInt(256),r+=BigInt(e[i]);return r}function qt(e,t){let r=BigInt(0);for(let i=0;i<Math.min(t,e.length);i++)r*=BigInt(2),r+=BigInt(e[i]);return r}function C(e,t){if(e.length===0)return [];let r=Math.ceil(e.length/t),i=new Array(r),n=e.length%t||t,o=0;for(let c=r-1;c>=0;c--){let a=c===r-1?n:t,s=0n;for(let l=0;l<a;l++)s=s<<8n|BigInt(e[o++]);let d=s.toString(16);i[c]=\"0x\"+(d.length%2?\"0\":\"\")+d;}return i}function Yt(e,t){if(e.length===0)return [];let r=Math.ceil(e.length/t),i=new Array(r),n=0;for(let o=0;o<r;o++){let c=e.length-n,a=Math.min(t,c),s=0n;for(let l=a-1;l>=0;l--)s=s<<8n|BigInt(e[n+l]);n+=a;let d=s.toString(16);i[o]=\"0x\"+d;}return i}function $(e){let t=[];for(let r=0;r<e.length;r++)t.push(BigInt(e.charCodeAt(r)));return t.map(r=>`0x${r.toString(16)}`)}var xe={ethereum:1,base:8453,arbitrum:42161,optimism:10,polygon:137,celo:42220,gnosis:100,scroll:534352,linea:59144,world_chain:480,ethereum_sepolia:11155111,base_sepolia:84532,arbitrum_sepolia:421614,polygon_amoy:80002,celo_sepolia:11142220,gnosis_chiado:10200,scroll_sepolia:534351,linea_sepolia:59141,world_chain_sepolia:4801,local:31337};function Zt(e){if(!xe[e])throw new Error(`Unsupported chain: ${e}`);return xe[e]}function qn(e){for(let t in xe)if(xe[t]===e)return t;throw new Error(`Unsupported chain ID: ${e}`)}function Yn(e){return e.replace(/_/g,\" \").replace(/\\b\\w/g,t=>t.toUpperCase())}function Zn(e,t){return (typeof e==\"string\"||typeof e==\"number\")&&(e=new Date(e)),(typeof t==\"string\"||typeof t==\"number\")&&(t=new Date(t)),e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function L(e){return typeof e==\"string\"||typeof e==\"number\"?new Date(e):e}function ue(e){if(typeof e==\"string\"||typeof e==\"number\"){let r=Math.floor(new Date(e).getTime()/1e3);return r===0?r+1:r}let t=Math.floor(e.getTime()/1e3);return t===0?t+1:t}function Jn(){let e=Date.UTC(new Date().getUTCFullYear(),new Date().getUTCMonth(),new Date().getUTCDate(),0,0,0,0);return Math.floor(e/1e3)}function eo(){let e=Date.UTC(new Date().getUTCFullYear(),new Date().getUTCMonth(),new Date().getUTCDate(),new Date().getUTCHours(),new Date().getUTCMinutes(),new Date().getUTCSeconds());return Math.floor(e/1e3)}function to(e){for(let t in e){let r=e[t];if((t===\"birthdate\"||t===\"expiry_date\")&&r&&typeof r==\"object\"){if(\"eq\"in r&&r.eq&&(r.eq.expected=L(r.eq.expected)),\"gte\"in r&&r.gte&&(r.gte.expected=L(r.gte.expected)),\"gt\"in r&&r.gt&&(r.gt.expected=L(r.gt.expected)),\"lte\"in r&&r.lte&&(r.lte.expected=L(r.lte.expected)),\"lt\"in r&&r.lt&&(r.lt.expected=L(r.lt.expected)),\"range\"in r&&r.range&&Array.isArray(r.range.expected)){let[i,n]=r.range.expected;r.range.expected=[L(i),L(n)];}\"disclose\"in r&&r.disclose&&(r.disclose.result=L(r.disclose.result));}}return e}function b(e,t){return hexToBytes(e.toString(16).padStart(t*2,\"0\"))}function mt(e){if(e===\"SHA-1\")return 20;if(e===\"SHA-224\")return 28;if(e===\"SHA-256\")return 32;if(e===\"SHA-384\")return 48;if(e===\"SHA-512\")return 64;throw new Error(`Unsupported hash algorithm: ${e}`)}function Jt(e){if(e===20)return et;if(e===28)return tt;if(e===32)return rt;if(e===48)return it;if(e===64)return nt;throw new Error(`Unsupported hash algorithm length: ${e}`)}async function er(e,t=3){let r;for(let i=0;i<=t;i++)try{return await e()}catch(n){if(r=n,i===t)throw n;let c=Math.min(100*Math.pow(2,i),5e3);await new Promise(a=>setTimeout(a,c));}throw r}function ro(e){return Array.from(e).map(t=>t.toString(16).padStart(2,\"0\")).join(\"\")}function io(e){let t=new Uint8Array(e.length/2);for(let r=0;r<e.length;r+=2)t[r/2]=parseInt(e.substring(r,r+2),16);return t}var gt=(n=>(n[n.NON_SALTED=0]=\"NON_SALTED\",n[n.SALTED=1]=\"SALTED\",n[n.NON_SALTED_MOCK=2]=\"NON_SALTED_MOCK\",n[n.SALTED_MOCK=3]=\"SALTED_MOCK\",n))(gt||{}),E=class e{constructor(t,r,i){this.value=t;this.salt=r;this.hash=i;this.value=t,this.salt=r,this.hash=i;}static fromValue(t,r){return new e(r,t,BigInt(0))}static fromHash(t,r){return new e(r,BigInt(0),t)}async getHash(){if(this.hash!==BigInt(0))return this.hash;if(Array.isArray(this.value)){let t=C(new Uint8Array(this.value),31).map(r=>BigInt(r));return await poseidon2HashAsync([this.salt,...t])}else return await poseidon2HashAsync([this.salt,BigInt(this.value)])}formatForInput(){return {value:Array.isArray(this.value)?this.value:`0x${BigInt(this.value).toString(16)}`,salt:`0x${this.salt.toString(16)}`,hash:`0x${this.hash.toString(16)}`}}};function lo(e){return BigInt(e.publicInputs[0])}function uo(e){return BigInt(e.publicInputs[1])}function rr(){return 2}function mo(e){return BigInt(e.publicInputs[e.publicInputs.length-2])}function go(e){return BigInt(e.publicInputs[e.publicInputs.length-1])}function ir(){return 2}function ft(e){return e.replace(/^<+|<+$/g,\"\").replace(/</g,\" \")}function U(e){return e.replace(/<+/g,\" \").replace(/</g,\" \").replace(/\\s+/g,\" \").replace(/[áàâäãå]/g,\"a\").replace(/[éèêë]/g,\"e\").replace(/[íìîï]/g,\"i\").replace(/[óòôöõ]/g,\"o\").replace(/[úùûü]/g,\"u\").replace(/[ñ]/g,\"n\").replace(/[ç]/g,\"c\").replace(/[æ]/g,\"ae\").replace(/[œ]/g,\"oe\").replace(/[ø]/g,\"o\").replace(/[æ]/g,\"ae\").replace(/[œ]/g,\"oe\").replace(/[ø]/g,\"o\").replace(/[^a-zA-Z ]/g,\"\").trim()}function _e(e){return e.startsWith(\"P\")?\"passport\":e===\"IR\"||e===\"AR\"?\"residence_permit\":e.startsWith(\"I\")?\"id_card\":\"other\"}function Ei(e,t){let r=new TextEncoder().encode(e),i=new Uint8Array(t),n=r.map((o,c)=>i[c]===1?o:0);return P(Array.from(n),90)}var St=class e{constructor(t){this.issuingCountry=t.issuingCountry,this.nationality=t.nationality,this.documentType=t.documentType,this.documentNumber=t.documentNumber,this.dateOfExpiry=t.dateOfExpiry,this.dateOfBirth=t.dateOfBirth,this.name=t.name,this.gender=t.gender,this.firstName=t.firstName,this.lastName=t.lastName;}static fromDisclosedBytes(t,r){let i={issuingCountry:new Uint8Array(t.slice(2,5)),nationality:new Uint8Array(t.slice(r===\"id_card\"?45:54,r===\"id_card\"?48:57)),documentType:new Uint8Array(t.slice(0,2)),documentNumber:new Uint8Array(t.slice(r===\"id_card\"?5:44,r===\"id_card\"?14:53)),dateOfExpiry:new Uint8Array(t.slice(r===\"id_card\"?38:65,r===\"id_card\"?44:71)),dateOfBirth:new Uint8Array(t.slice(r===\"id_card\"?30:57,r===\"id_card\"?36:63)),name:new Uint8Array(t.slice(r===\"id_card\"?60:5,r===\"id_card\"?90:44)),gender:new Uint8Array(t.slice(r===\"id_card\"?37:64,r===\"id_card\"?38:65))},n=new TextDecoder,o=u=>n.decode(u).replace(/\\0/g,\"\"),c=i.name&&i.name.length>0?o(i.name):\"\",a=c.indexOf(\"<<\"),s=a>=0?c.substring(0,a):\"\",d=a>=0?c.substring(a+2):\"\",l=d+\" \"+s;return new e({issuingCountry:o(i.issuingCountry),nationality:o(i.nationality),documentType:_e(o(i.documentType)),documentNumber:ft(o(i.documentNumber)),dateOfExpiry:K(i.dateOfExpiry),dateOfBirth:K(i.dateOfBirth),name:U(l),firstName:U(d),lastName:U(s),gender:o(i.gender)})}static fromFlagsProof(t){let r=t.publicInputs.slice(3,93).map(u=>parseInt(u,16)),i={issuingCountry:new Uint8Array(r.slice(0,3)),nationality:new Uint8Array(r.slice(3,6)),documentType:new Uint8Array(r.slice(6,8)),documentNumber:new Uint8Array(r.slice(8,17)),dateOfExpiry:new Uint8Array(r.slice(17,23)),dateOfBirth:new Uint8Array(r.slice(23,29)),name:new Uint8Array(r.slice(29,68)),gender:new Uint8Array(r.slice(68,69))},n=new TextDecoder,o=u=>n.decode(u).replace(/\\0/g,\"\"),c=i.name&&i.name.length>0?o(i.name):\"\",a=c.indexOf(\"<<\"),s=a>0?c.substring(0,a):\"\",d=a>0?c.substring(a+2):\"\",l=d+\" \"+s;return new e({issuingCountry:o(i.issuingCountry),nationality:o(i.nationality),documentType:_e(o(i.documentType)),documentNumber:ft(o(i.documentNumber)),dateOfExpiry:K(i.dateOfExpiry),dateOfBirth:K(i.dateOfBirth),name:U(l),firstName:U(d),lastName:U(s),gender:o(i.gender)})}static fromBytesProof(t,r){let o=t.publicInputs.slice(93,182).map(h=>parseInt(h,16)),c={issuingCountry:new Uint8Array(o.slice(2,5)),nationality:new Uint8Array(o.slice(r===\"id_card\"?45:54,r===\"id_card\"?48:57)),documentType:new Uint8Array(o.slice(0,2)),documentNumber:new Uint8Array(o.slice(r===\"id_card\"?5:44,r===\"id_card\"?14:53)),dateOfExpiry:new Uint8Array(o.slice(r===\"id_card\"?38:65,r===\"id_card\"?44:71)),dateOfBirth:new Uint8Array(o.slice(r===\"id_card\"?30:57,r===\"id_card\"?36:63)),name:new Uint8Array(o.slice(r===\"id_card\"?60:5,r===\"id_card\"?90:44)),gender:new Uint8Array(o.slice(r===\"id_card\"?37:64,r===\"id_card\"?38:65))},a=new TextDecoder,s=h=>a.decode(h).replace(/\\0/g,\"\"),d=c.name&&c.name.length>0?s(c.name):\"\",l=d.indexOf(\"<<\"),u=l>=0?d.substring(0,l):\"\",m=l>=0?d.substring(l+2):\"\",g=m+\" \"+u;return new e({issuingCountry:s(c.issuingCountry),nationality:s(c.nationality),documentType:_e(s(c.documentType)),documentNumber:ft(s(c.documentNumber)),dateOfExpiry:K(c.dateOfExpiry),dateOfBirth:K(c.dateOfBirth),name:U(g),firstName:U(m),lastName:U(u),gender:s(c.gender)})}};function K(e){let t=new TextDecoder().decode(e).replace(/\\0/g,\"\"),r=parseInt(t.substring(0,2)),i=parseInt(t.substring(2,4))-1,n=parseInt(t.substring(4,6)),o=new Date().getFullYear(),c=Math.floor(o/100)*100,a=c-100,s=r+(r+c>o+10?a:c);return new Date(Date.UTC(s,i,n,0,0,0,0))}function Ti(e){let t=e.getFullYear()%100,r=e.getMonth()+1,i=e.getDate(),n=`${t.toString().padStart(2,\"0\")}${r.toString().padStart(2,\"0\")}${i.toString().padStart(2,\"0\")}`;return new TextEncoder().encode(n)}function Di(e){let t=new TextEncoder;function r(n,o){if(n.length===o)return n;let c=new Uint8Array(o);return c.set(n.slice(0,o)),c}function i(n,o){if(n instanceof Date)return r(Ti(n),o);let c=typeof n==\"string\"?t.encode(n):n;return r(c,o)}return {issuingCountry:i(e.issuingCountry,3),nationality:i(e.nationality,3),documentType:i(e.documentType,2),documentNumber:i(e.documentNumber,9),dateOfExpiry:i(e.dateOfExpiry,6),dateOfBirth:i(e.dateOfBirth,6),name:i(e.name,39),gender:i(e.gender,1)}}async function Ni(e,t){return await poseidon2HashAsync([BigInt(0),BigInt(f[0].standard),qt(e,253),...C(new Uint8Array(t),31).map(i=>BigInt(i))])}async function xi(e,t){let r=sha256(new Uint8Array([0,...b(f[0].evm,2),...e.map(n=>Number(n)),...t.map(n=>Number(n))]));return M(r,31)}function Do(e){return e.minAge}function No(e){return e.maxAge}async function xo(e,t){return await poseidon2HashAsync([BigInt(1),BigInt(f[1].standard),BigInt(e),BigInt(t)])}async function Mo(e,t){let r=sha256(new Uint8Array([1,...b(f[1].evm,2),e,t]));return M(r,31)}function Re(e){return e.charCodeAt(0)*65536+e.charCodeAt(1)*256+e.charCodeAt(2)}function Oo(e){return String.fromCharCode(Math.floor(e/65536),Math.floor(e/256)%256,e%256)}function ko(e){let t=[];for(let r=0;r<e.countries.length;r+=3)Number(e.countries[r])!==0&&t.push(new TextDecoder().decode(new Uint8Array(e.countries.slice(r,r+3).map(Number))));return t}async function Ho(e,t,r=false){let i=t.map(c=>Re(c)),n=P(r?i.sort((c,a)=>c-a):i,200).map(c=>BigInt(c));return await poseidon2HashAsync([BigInt(e),BigInt(f[e].standard),...n])}async function Go(e,t,r=false){r&&t.sort((c,a)=>c.localeCompare(a));let i=t.map(c=>Array.from(new TextEncoder().encode(c))).flat(),n=sha256(new Uint8Array([e,...b(f[e].evm,2),...P(i,600)]));return M(n,31)}var Y=Math.floor(Math.abs(Date.UTC(1900,0,1,0,0,0))/1e3);function nr(e){return new Date(e.minDateTimestamp*1e3)}function or(e){return new Date(e.maxDateTimestamp*1e3)}function Wo(e,t=Y){return nr(e).getTime()===0?new Date(0):new Date(nr(e).getTime()+t*1e3)}function zo(e,t=Y){return or(e).getTime()===0?new Date(0):new Date(or(e).getTime()+t*1e3)}async function jo(e,t,r,i=Y){return await poseidon2HashAsync([BigInt(e),BigInt(f[e].standard),e===2&&t!==0?BigInt(t)+BigInt(i):BigInt(t),e===2&&r!==0?BigInt(r)+BigInt(i):BigInt(r)])}async function Qo(e,t,r,i=Y){let n=sha256(new Uint8Array([e,...b(f[e].evm,2),...b(e===2&&t!==0?t+i:t,8),...b(e===2&&r!==0?r+i:r,8)]));return M(n,31)}function qo(e){return BigInt(e.publicInputs[0])}function Yo(e){return BigInt(e.publicInputs[1])}function ar(){return 2}function cr(e){return \"0x\"+Buffer.from(e).toString(\"hex\").padStart(64,\"0\")}function Jo(e){let t=[];for(let r=0;r<e.length;r+=32)t.push(cr(e.slice(r,r+32)));return t}function ea(e){let t=cr(e.slice(32,64));return parseInt(t,16)-16}function ca(e){return e.data}var ki=(i=>(i[i.USER_ADDRESS=1]=\"USER_ADDRESS\",i[i.CHAIN_ID=2]=\"CHAIN_ID\",i[i.CUSTOM_DATA=3]=\"CUSTOM_DATA\",i))(ki||{});function sr(e){let t=[];if(e.user_address&&e.user_address.length>0){let r=p.fromHex(e.user_address).toNumberArray();t=[...t,1,...x([r.length],2),...r];}if(e.chain){let r=Zt(e.chain),i=p.fromHex(r.toString(16)).toNumberArray();t=[...t,2,0,i.length,...i];}if(e.custom_data&&e.custom_data.length>0){let r=new TextEncoder().encode(e.custom_data);t=[...t,3,r.length>>8&255,r.length&255,...r];}if(t.length>509)throw new Error(`Data is too long: ${t.length} > 509`);return t}async function sa(e,t=509){let r=P(e,t);return await poseidon2HashAsync([BigInt(8),BigInt(f[8].standard),...C(new Uint8Array(r),31).map(n=>BigInt(n))])}async function da(e,t=509){let r=P(e,t),i=sha256(new Uint8Array([8,...b(f[8].evm,2),...r]));return M(i,31)}var dr=8544227306600425492560068004835614964118871262589609739238120993689090208159n,lr=0x24d9929b248be7eeecaa98e105c034a50539610f3fdd4cb9c8983ef4100d615dn;async function fa(e,t,r,i){return await poseidon2HashAsync([BigInt(10),BigInt(f[10].standard),e,t,r,r===lr?dr:0n,i])}async function Sa(e,t,r,i){let n=sha256(new Uint8Array([10,...b(f[10].evm,2),...b(e,32),...b(t,1),...b(r,32),...b(r===lr?dr:0n,32),...b(i,1)]));return M(n,31)}async function _(e,t,r){return p.from(await poseidon2HashAsync([...C(e.toUInt8Array(),31).map(i=>BigInt(i)),...C(t.toUInt8Array(),31).map(i=>BigInt(i)),...C(r.toUInt8Array(),31).map(i=>BigInt(i))]))}async function ur(e,t,r,i){let n=[];return n.push(e),n.push(...C(new Uint8Array(t.split(\"\").map(o=>o.charCodeAt(0))),31).map(o=>BigInt(o))),n.push(...C(r.padEnd(i).toUInt8Array(),31).map(o=>BigInt(o))),p.from(await poseidon2HashAsync(n.map(o=>BigInt(o))))}async function pr(e,t,r,i,n,o,c){let a=[];return a.push(e),a.push(...C(new Uint8Array(t.split(\"\").map(s=>s.charCodeAt(0))),31).map(s=>BigInt(s))),a.push(...C(r.toUInt8Array(),31).map(s=>BigInt(s))),a.push(i),a.push(...C(n.toUInt8Array(),31).map(s=>BigInt(s))),a.push(...C(o.toUInt8Array(),31).map(s=>BigInt(s))),a.push(c),p.from(await poseidon2HashAsync(a.map(s=>BigInt(s))))}async function mr(e){return Ui(new Uint8Array(e))}async function Ui(e){let t=Yt(e,31);return poseidon2HashAsync(t.map(r=>BigInt(r)))}async function O(e,t,r,i,n,o){let c=[];return c.push(await E.fromValue(e.dg1Salt,t.toNumberArray()).getHash()),c.push(await E.fromValue(e.expiryDateSalt,r.split(\"\").map(a=>a.charCodeAt(0))).getHash()),c.push(await E.fromValue(e.dg2HashSalt,i).getHash()),c.push(await E.fromValue(e.dg2HashSalt,BigInt(n)).getHash()),c.push(await E.fromValue(e.privateNullifierSalt,o).getHash()),p.from(await poseidon2HashAsync(c.map(a=>BigInt(a))))}function Na(e){return BigInt(e.publicInputs[e.publicInputs.length-1])}function xa(e){let t=BigInt(e.publicInputs[e.publicInputs.length-2]);if(t===0n)return 0;if(t===1n)return 1;if(t===2n)return 2;if(t===3n)return 3;throw new Error(\"Invalid nullifier type\")}function Ma(e){return BigInt(e.publicInputs[4])}function Ba(e){return BigInt(e.publicInputs[3])}function _a(e){return BigInt(e.publicInputs[2])}function Ra(e){return BigInt(e.publicInputs[0])}function va(e){return new Date(Number(BigInt(e.publicInputs[1]))*1e3)}async function wa(e,t){return await(await fetch(`https://circuits.zkpassport.id/artifacts/${e}_${t.replace(\"0x\",\"\").substring(0,16)}.json.gz`)).json()}async function Ka(e){return await(await fetch(`https://circuits.zkpassport.id/hashes/${e.replace(\"0x\",\"\")}.json.gz`)).json()}async function Oa(e,t){return await(await fetch(`https://circuits.zkpassport.id/versions/${e}/${t}.json.gz`)).json()}function ka(e){return e.startsWith(\"data_check_integrity\")?ir():e.startsWith(\"sig_check_id_data\")?ar():e.startsWith(\"sig_check_dsc\")?rr():e.startsWith(\"outer\")?7+(Number(e.substring(e.lastIndexOf(\"_\")+1))-3):7}function Ha(e){let t=e.endsWith(\"evm\")?3:2;switch(e){case \"compare_age\":return f[1].standard+t;case \"compare_age_evm\":return f[1].evm+t;case \"compare_birthdate\":return f[2].standard+t;case \"compare_birthdate_evm\":return f[2].evm+t;case \"compare_expiry\":return f[3].standard+t;case \"compare_expiry_evm\":return f[3].evm+t;case \"disclose_bytes\":return f[0].standard+t;case \"disclose_bytes_evm\":return f[0].evm+t;case \"inclusion_check_issuing_country\":return f[6].standard+t;case \"inclusion_check_issuing_country_evm\":return f[6].evm+t;case \"inclusion_check_nationality\":return f[4].standard+t;case \"inclusion_check_nationality_evm\":return f[4].evm+t;case \"exclusion_check_issuing_country\":return f[7].standard+t;case \"exclusion_check_issuing_country_evm\":return f[7].evm+t;case \"exclusion_check_nationality\":return f[5].standard+t;case \"exclusion_check_nationality_evm\":return f[5].evm+t;case \"bind\":return f[8].standard+t;case \"bind_evm\":return f[8].evm+t;case \"exclusion_check_sanctions\":return f[9].standard+t;case \"exclusion_check_sanctions_evm\":return f[9].evm+t;case \"facematch\":return f[10].standard+t;case \"facematch_evm\":return f[10].evm+t;default:throw new Error(`Unknown circuit name: ${e}`)}}function Xi(e){return format(e,\"yyyyMMdd\")}function Ga(e){return p.from(new TextEncoder().encode(Xi(e)))}var q=(u=>(u[u.DISCLOSE=0]=\"DISCLOSE\",u[u.AGE=1]=\"AGE\",u[u.BIRTHDATE=2]=\"BIRTHDATE\",u[u.EXPIRY_DATE=3]=\"EXPIRY_DATE\",u[u.NATIONALITY_INCLUSION=4]=\"NATIONALITY_INCLUSION\",u[u.NATIONALITY_EXCLUSION=5]=\"NATIONALITY_EXCLUSION\",u[u.ISSUING_COUNTRY_INCLUSION=6]=\"ISSUING_COUNTRY_INCLUSION\",u[u.ISSUING_COUNTRY_EXCLUSION=7]=\"ISSUING_COUNTRY_EXCLUSION\",u[u.BIND=8]=\"BIND\",u[u.SANCTIONS_EXCLUSION=9]=\"SANCTIONS_EXCLUSION\",u[u.FACEMATCH=10]=\"FACEMATCH\",u))(q||{}),f={0:{evm:180,standard:4},1:{evm:2,standard:2},2:{evm:16,standard:2},3:{evm:16,standard:2},4:{evm:600,standard:200},5:{evm:600,standard:200},6:{evm:600,standard:200},7:{evm:600,standard:200},8:{evm:509,standard:17},9:{evm:33,standard:2},10:{evm:98,standard:5}};me();function ge(e){return Li[e.toUpperCase()]}function ec(e){return Vi[e.toUpperCase()]}function tc(e){let t=ge(e);return br[t.toUpperCase()]}function rc(e){return br[e.toUpperCase()]}var br={ABW:\"Aruba\",AFG:\"Afghanistan\",AGO:\"Angola\",AIA:\"Anguilla\",ALA:\"Aland Islands\",ALB:\"Albania\",AND:\"Andorra\",ARE:\"United Arab Emirates\",ARG:\"Argentina\",ARM:\"Armenia\",ASM:\"American Samoa\",ATA:\"Antarctica\",ATF:\"French Southern Territories\",ATG:\"Antigua and Barbuda\",AUS:\"Australia\",AUT:\"Austria\",AZE:\"Azerbaijan\",BDI:\"Burundi\",BEL:\"Belgium\",BEN:\"Benin\",BES:\"Caribbean Netherlands\",BFA:\"Burkina Faso\",BGD:\"Bangladesh\",BGR:\"Bulgaria\",BHR:\"Bahrain\",BHS:\"The Bahamas\",BIH:\"Bosnia and Herzegovina\",BLM:\"Saint Barth\\xE9lemy\",BLR:\"Belarus\",BLZ:\"Belize\",BMU:\"Bermuda\",BOL:\"Bolivia\",BRA:\"Brazil\",BRB:\"Barbados\",BRN:\"Brunei\",BTN:\"Bhutan\",BVT:\"Bouvet Island\",BWA:\"Botswana\",CAF:\"Central African Republic\",CAN:\"Canada\",CCK:\"Cocos (Keeling) Islands\",CHE:\"Switzerland\",CHL:\"Chile\",CHN:\"China\",CIV:\"Ivory Coast\",CMR:\"Cameroon\",COD:\"Democratic Republic of the Congo\",COG:\"Republic of the Congo\",COK:\"Cook Islands\",COL:\"Colombia\",COM:\"Comoros\",CPV:\"Cape Verde\",CRI:\"Costa Rica\",CUB:\"Cuba\",CUW:\"Curacao\",CXR:\"Christmas Island\",CYM:\"Cayman Islands\",CYP:\"Cyprus\",CZE:\"Czechia\",\"D<<\":\"Germany\",DEU:\"Germany\",DJI:\"Djibouti\",DMA:\"Dominica\",DNK:\"Denmark\",DOM:\"Dominican Republic\",DZA:\"Algeria\",ECU:\"Ecuador\",EGY:\"Egypt\",ERI:\"Eritrea\",ESH:\"Western Sahara\",ESP:\"Spain\",EST:\"Estonia\",ETH:\"Ethiopia\",FIN:\"Finland\",FJI:\"Fiji\",FLK:\"Falkland Islands\",FRA:\"France\",FRO:\"Faroe Islands\",FSM:\"Micronesia\",GAB:\"Gabon\",GBR:\"United Kingdom\",GEO:\"Georgia\",GGY:\"Guernsey\",GHA:\"Ghana\",GIB:\"Gibraltar\",GIN:\"Guinea\",GLP:\"Guadeloupe\",GMB:\"The Gambia\",GNB:\"Guinea-Bissau\",GNQ:\"Equatorial Guinea\",GRC:\"Greece\",GRD:\"Grenada\",GRL:\"Greenland\",GTM:\"Guatemala\",GUF:\"French Guiana\",GUM:\"Guam\",GUY:\"Guyana\",HKG:\"Hong Kong\",HMD:\"Heard Island and McDonald Islands\",HND:\"Honduras\",HRV:\"Croatia\",HTI:\"Haiti\",HUN:\"Hungary\",IDN:\"Indonesia\",IMN:\"Isle of Man\",IND:\"India\",IOT:\"British Indian Ocean Territory\",IRL:\"Ireland\",IRN:\"Iran\",IRQ:\"Iraq\",ISL:\"Iceland\",ISR:\"Israel\",ITA:\"Italy\",JAM:\"Jamaica\",JEY:\"Jersey\",JOR:\"Jordan\",JPN:\"Japan\",KAZ:\"Kazakhstan\",KEN:\"Kenya\",KGZ:\"Kyrgyzstan\",KHM:\"Cambodia\",KIR:\"Kiribati\",KNA:\"Saint Kitts and Nevis\",KOR:\"South Korea\",KWT:\"Kuwait\",LAO:\"Laos\",LBN:\"Lebanon\",LBR:\"Liberia\",LBY:\"Libya\",LCA:\"Saint Lucia\",LIE:\"Liechtenstein\",LKA:\"Sri Lanka\",LSO:\"Lesotho\",LTU:\"Lithuania\",LUX:\"Luxembourg\",LVA:\"Latvia\",MAC:\"Macau\",MAF:\"Saint Martin\",MAR:\"Morocco\",MCO:\"Monaco\",MDA:\"Moldova\",MDG:\"Madagascar\",MDV:\"Maldives\",MEX:\"Mexico\",MHL:\"Marshall Islands\",MKD:\"North Macedonia\",MLI:\"Mali\",MLT:\"Malta\",MMR:\"Myanmar\",MNE:\"Montenegro\",MNG:\"Mongolia\",MNP:\"Northern Mariana Islands\",MOZ:\"Mozambique\",MRT:\"Mauritania\",MSR:\"Montserrat\",MTQ:\"Martinique\",MUS:\"Mauritius\",MWI:\"Malawi\",MYS:\"Malaysia\",MYT:\"Mayotte\",NAM:\"Namibia\",NCL:\"New Caledonia\",NER:\"Niger\",NFK:\"Norfolk Island\",NGA:\"Nigeria\",NIC:\"Nicaragua\",NIU:\"Niue\",NLD:\"Netherlands\",NOR:\"Norway\",NPL:\"Nepal\",NRU:\"Nauru\",NZL:\"New Zealand\",OMN:\"Oman\",PAK:\"Pakistan\",PAN:\"Panama\",PCN:\"Pitcairn Islands\",PER:\"Peru\",PHL:\"Philippines\",PLW:\"Palau\",PNG:\"Papua New Guinea\",POL:\"Poland\",PRI:\"Puerto Rico\",PRK:\"North Korea\",PRT:\"Portugal\",PRY:\"Paraguay\",PSE:\"Palestine\",PYF:\"French Polynesia\",QAT:\"Qatar\",REU:\"Reunion\",ROU:\"Romania\",RUS:\"Russia\",RWA:\"Rwanda\",SAU:\"Saudi Arabia\",SDN:\"Sudan\",SEN:\"Senegal\",SGP:\"Singapore\",SGS:\"South Georgia and the South Sandwich Islands\",SHN:\"Saint Helena\",SJM:\"Svalbard and Jan Mayen\",SLB:\"Solomon Islands\",SLE:\"Sierra Leone\",SLV:\"El Salvador\",SMR:\"San Marino\",SOM:\"Somalia\",SPM:\"Saint Pierre and Miquelon\",SRB:\"Serbia\",SSD:\"South Sudan\",STP:\"Sao Tome and Principe\",SUR:\"Suriname\",SVK:\"Slovakia\",SVN:\"Slovenia\",SWE:\"Sweden\",SWZ:\"Eswatini\",SXM:\"Sint Maarten\",SYC:\"Seychelles\",SYR:\"Syrian\",TCA:\"Turks and Caicos Islands\",TCD:\"Chad\",TGO:\"Togo\",THA:\"Thailand\",TJK:\"Tajikistan\",TKL:\"Tokelau\",TKM:\"Turkmenistan\",TLS:\"Timor-Leste\",TON:\"Tonga\",TTO:\"Trinidad and Tobago\",TUN:\"Tunisia\",TUR:\"Turkey\",TUV:\"Tuvalu\",TWN:\"Taiwan\",TZA:\"Tanzania\",UGA:\"Uganda\",UKR:\"Ukraine\",UMI:\"United States Minor Outlying Islands\",URY:\"Uruguay\",USA:\"United States\",UZB:\"Uzbekistan\",VAT:\"Vatican City\",VCT:\"Saint Vincent and the Grenadines\",VEN:\"Venezuela\",VGB:\"British Virgin Islands\",VIR:\"Virgin Islands\",VNM:\"Viet Nam\",VUT:\"Vanuatu\",WLF:\"Wallis and Futuna\",WSM:\"Samoa\",XKX:\"Kosovo\",YEM:\"Yemen\",ZAF:\"South Africa\",ZMB:\"Zambia\",ZWE:\"Zimbabwe\",ZKR:\"Zero Knowledge Republic\"},Li={AF:\"AFG\",AL:\"ALB\",DZ:\"DZA\",AS:\"ASM\",AD:\"AND\",AO:\"AGO\",AI:\"AIA\",AQ:\"ATA\",AG:\"ATG\",AR:\"ARG\",AM:\"ARM\",AW:\"ABW\",AU:\"AUS\",AT:\"AUT\",AZ:\"AZE\",BS:\"BHS\",BH:\"BHR\",BD:\"BGD\",BB:\"BRB\",BY:\"BLR\",BE:\"BEL\",BZ:\"BLZ\",BJ:\"BEN\",BM:\"BMU\",BT:\"BTN\",BO:\"BOL\",BA:\"BIH\",BW:\"BWA\",BV:\"BVT\",BR:\"BRA\",IO:\"IOT\",BN:\"BRN\",BG:\"BGR\",BF:\"BFA\",BI:\"BDI\",KH:\"KHM\",CM:\"CMR\",CA:\"CAN\",CV:\"CPV\",KY:\"CYM\",CF:\"CAF\",TD:\"TCD\",CL:\"CHL\",CN:\"CHN\",CX:\"CXR\",CC:\"CCK\",CO:\"COL\",KM:\"COM\",CG:\"COG\",CD:\"COD\",CK:\"COK\",CR:\"CRI\",CI:\"CIV\",HR:\"HRV\",CU:\"CUB\",CY:\"CYP\",CZ:\"CZE\",DK:\"DNK\",DJ:\"DJI\",DM:\"DMA\",DO:\"DOM\",EC:\"ECU\",EG:\"EGY\",SV:\"SLV\",GQ:\"GNQ\",ER:\"ERI\",EE:\"EST\",ET:\"ETH\",FK:\"FLK\",FO:\"FRO\",FJ:\"FJI\",FI:\"FIN\",FR:\"FRA\",GF:\"GUF\",PF:\"PYF\",TF:\"ATF\",GA:\"GAB\",GM:\"GMB\",GE:\"GEO\",DE:\"DEU\",GH:\"GHA\",GI:\"GIB\",GR:\"GRC\",GL:\"GRL\",GD:\"GRD\",GP:\"GLP\",GU:\"GUM\",GT:\"GTM\",GN:\"GIN\",GW:\"GNB\",GY:\"GUY\",HT:\"HTI\",HM:\"HMD\",VA:\"VAT\",HN:\"HND\",HK:\"HKG\",HU:\"HUN\",IS:\"ISL\",IN:\"IND\",ID:\"IDN\",IR:\"IRN\",IQ:\"IRQ\",IE:\"IRL\",IL:\"ISR\",IT:\"ITA\",JM:\"JAM\",JP:\"JPN\",JO:\"JOR\",KZ:\"KAZ\",KE:\"KEN\",KI:\"KIR\",KP:\"PRK\",KS:\"XKX\",KR:\"KOR\",KW:\"KWT\",KG:\"KGZ\",LA:\"LAO\",LV:\"LVA\",LB:\"LBN\",LS:\"LSO\",LR:\"LBR\",LY:\"LBY\",LI:\"LIE\",LT:\"LTU\",LU:\"LUX\",MO:\"MAC\",MG:\"MDG\",MW:\"MWI\",MY:\"MYS\",MV:\"MDV\",ML:\"MLI\",MT:\"MLT\",MH:\"MHL\",MQ:\"MTQ\",MR:\"MRT\",MU:\"MUS\",YT:\"MYT\",MX:\"MEX\",FM:\"FSM\",MD:\"MDA\",MC:\"MCO\",MN:\"MNG\",MS:\"MSR\",MA:\"MAR\",MZ:\"MOZ\",MM:\"MMR\",NA:\"NAM\",NR:\"NRU\",NP:\"NPL\",NL:\"NLD\",NC:\"NCL\",NZ:\"NZL\",NI:\"NIC\",NE:\"NER\",NG:\"NGA\",NU:\"NIU\",NF:\"NFK\",MP:\"MNP\",MK:\"MKD\",NO:\"NOR\",OM:\"OMN\",PK:\"PAK\",PW:\"PLW\",PS:\"PSE\",PA:\"PAN\",PG:\"PNG\",PY:\"PRY\",PE:\"PER\",PH:\"PHL\",PN:\"PCN\",PL:\"POL\",PT:\"PRT\",PR:\"PRI\",QA:\"QAT\",RE:\"REU\",RO:\"ROU\",RU:\"RUS\",RW:\"RWA\",SH:\"SHN\",KN:\"KNA\",LC:\"LCA\",PM:\"SPM\",VC:\"VCT\",WS:\"WSM\",SM:\"SMR\",ST:\"STP\",SA:\"SAU\",SN:\"SEN\",SC:\"SYC\",SL:\"SLE\",SG:\"SGP\",SK:\"SVK\",SI:\"SVN\",SB:\"SLB\",SO:\"SOM\",ZA:\"ZAF\",GS:\"SGS\",ES:\"ESP\",LK:\"LKA\",SD:\"SDN\",SR:\"SUR\",SJ:\"SJM\",SZ:\"SWZ\",SE:\"SWE\",CH:\"CHE\",SY:\"SYR\",TW:\"TWN\",TJ:\"TJK\",TZ:\"TZA\",TH:\"THA\",TL:\"TLS\",TG:\"TGO\",TK:\"TKL\",TO:\"TON\",TT:\"TTO\",TN:\"TUN\",TR:\"TUR\",TM:\"TKM\",TC:\"TCA\",TV:\"TUV\",UG:\"UGA\",UA:\"UKR\",AE:\"ARE\",GB:\"GBR\",US:\"USA\",UM:\"UMI\",UY:\"URY\",UZ:\"UZB\",VU:\"VUT\",VE:\"VEN\",VN:\"VNM\",VG:\"VGB\",VI:\"VIR\",WF:\"WLF\",EH:\"ESH\",YE:\"YEM\",ZM:\"ZMB\",ZW:\"ZWE\",AX:\"ALA\",BQ:\"BES\",CW:\"CUW\",GG:\"GGY\",IM:\"IMN\",JE:\"JEY\",ME:\"MNE\",BL:\"BLM\",MF:\"MAF\",RS:\"SRB\",SX:\"SXM\",SS:\"SSD\",XK:\"XKK\",ZK:\"ZKR\"},Vi={AFG:\"AF\",ALB:\"AL\",DZA:\"DZ\",ASM:\"AS\",AND:\"AD\",AGO:\"AO\",AIA:\"AI\",ATA:\"AQ\",ATG:\"AG\",ARG:\"AR\",ARM:\"AM\",ABW:\"AW\",AUS:\"AU\",AUT:\"AT\",AZE:\"AZ\",BHS:\"BS\",BHR:\"BH\",BGD:\"BD\",BRB:\"BB\",BLR:\"BY\",BEL:\"BE\",BLZ:\"BZ\",BEN:\"BJ\",BMU:\"BM\",BTN:\"BT\",BOL:\"BO\",BIH:\"BA\",BWA:\"BW\",BVT:\"BV\",BRA:\"BR\",IOT:\"IO\",BRN:\"BN\",BGR:\"BG\",BFA:\"BF\",BDI:\"BI\",KHM:\"KH\",CMR:\"CM\",CAN:\"CA\",CPV:\"CV\",CYM:\"KY\",CAF:\"CF\",TCD:\"TD\",CHL:\"CL\",CHN:\"CN\",CXR:\"CX\",CCK:\"CC\",COL:\"CO\",COM:\"KM\",COG:\"CG\",COD:\"CD\",COK:\"CK\",CRI:\"CR\",CIV:\"CI\",HRV:\"HR\",CUB:\"CU\",CYP:\"CY\",CZE:\"CZ\",DNK:\"DK\",DJI:\"DJ\",DMA:\"DM\",DOM:\"DO\",ECU:\"EC\",EGY:\"EG\",SLV:\"SV\",GNQ:\"GQ\",ERI:\"ER\",EST:\"EE\",ETH:\"ET\",FLK:\"FK\",FRO:\"FO\",FJI:\"FJ\",FIN:\"FI\",FRA:\"FR\",GUF:\"GF\",PYF:\"PF\",ATF:\"TF\",GAB:\"GA\",GMB:\"GM\",GEO:\"GE\",DEU:\"DE\",GHA:\"GH\",GIB:\"GI\",GRC:\"GR\",GRL:\"GL\",GRD:\"GD\",GLP:\"GP\",GUM:\"GU\",GTM:\"GT\",GIN:\"GN\",GNB:\"GW\",GUY:\"GY\",HTI:\"HT\",HMD:\"HM\",VAT:\"VA\",HND:\"HN\",HKG:\"HK\",HUN:\"HU\",ISL:\"IS\",IND:\"IN\",IDN:\"ID\",IRN:\"IR\",IRQ:\"IQ\",IRL:\"IE\",ISR:\"IL\",ITA:\"IT\",JAM:\"JM\",JPN:\"JP\",JOR:\"JO\",KAZ:\"KZ\",KEN:\"KE\",KIR:\"KI\",PRK:\"KP\",XKX:\"KS\",KOR:\"KR\",KWT:\"KW\",KGZ:\"KG\",LAO:\"LA\",LVA:\"LV\",LBN:\"LB\",LSO:\"LS\",LBR:\"LR\",LBY:\"LY\",LIE:\"LI\",LTU:\"LT\",LUX:\"LU\",MAC:\"MO\",MDG:\"MG\",MWI:\"MW\",MYS:\"MY\",MDV:\"MV\",MLI:\"ML\",MLT:\"MT\",MHL:\"MH\",MTQ:\"MQ\",MRT:\"MR\",MUS:\"MU\",MYT:\"YT\",MEX:\"MX\",FSM:\"FM\",MDA:\"MD\",MCO:\"MC\",MNG:\"MN\",MSR:\"MS\",MAR:\"MA\",MOZ:\"MZ\",MMR:\"MM\",NAM:\"NA\",NRU:\"NR\",NPL:\"NP\",NLD:\"NL\",NCL:\"NC\",NZL:\"NZ\",NIC:\"NI\",NER:\"NE\",NGA:\"NG\",NIU:\"NU\",NFK:\"NF\",MNP:\"MP\",MKD:\"MK\",NOR:\"NO\",OMN:\"OM\",PAK:\"PK\",PLW:\"PW\",PSE:\"PS\",PAN:\"PA\",PNG:\"PG\",PRY:\"PY\",PER:\"PE\",PHL:\"PH\",PCN:\"PN\",POL:\"PL\",PRT:\"PT\",PRI:\"PR\",QAT:\"QA\",REU:\"RE\",ROU:\"RO\",RUS:\"RU\",RWA:\"RW\",SHN:\"SH\",KNA:\"KN\",LCA:\"LC\",SPM:\"PM\",VCT:\"VC\",WSM:\"WS\",SMR:\"SM\",STP:\"ST\",SAU:\"SA\",SEN:\"SN\",SYC:\"SC\",SLE:\"SL\",SGP:\"SG\",SVK:\"SK\",SVN:\"SI\",SLB:\"SB\",SOM:\"SO\",ZAF:\"ZA\",SGS:\"GS\",ESP:\"ES\",LKA:\"LK\",SDN:\"SD\",SUR:\"SR\",SJM:\"SJ\",SWZ:\"SZ\",SWE:\"SE\",CHE:\"CH\",SYR:\"SY\",TWN:\"TW\",TJK:\"TJ\",TZA:\"TZ\",THA:\"TH\",TLS:\"TL\",TGO:\"TG\",TKL:\"TK\",TON:\"TO\",TTO:\"TT\",TUN:\"TN\",TUR:\"TR\",TKM:\"TM\",TCA:\"TC\",TUV:\"TV\",UGA:\"UG\",UKR:\"UA\",ARE:\"AE\",GBR:\"GB\",USA:\"US\",UMI:\"UM\",URY:\"UY\",UZB:\"UZ\",VUT:\"VU\",VEN:\"VE\",VNM:\"VN\",VGB:\"VG\",VIR:\"VI\",WLF:\"WF\",ESH:\"EH\",YEM:\"YE\",ZMB:\"ZM\",ZWE:\"ZW\",ALA:\"AX\",BES:\"BQ\",CUW:\"CW\",GGY:\"GG\",IMN:\"IM\",JEY:\"JE\",MNE:\"ME\",BLM:\"BL\",MAF:\"MF\",SRB:\"RS\",SXM:\"SX\",SSD:\"SS\",XKK:\"XK\",ZKR:\"ZK\"};function qi(e){let t=Br(e);return Sr[t]||t}function Br(e){if(e.namedCurve){if(!(e.namedCurve in ht))throw new Error(`Unknown curve OID: ${e.namedCurve}`);return ht[e.namedCurve]}if(!e.specifiedCurve)throw new Error(\"No named or specified curve found in ECParameters\");let t=BigInt(`0x${Buffer.from(e.specifiedCurve.curve.a).toString(\"hex\")}`),r=BigInt(`0x${Buffer.from(e.specifiedCurve.curve.b).toString(\"hex\")}`),i=BigInt(`0x${Buffer.from(e.specifiedCurve.order).toString(\"hex\")}`),n=BigInt(`0x${Buffer.from(e.specifiedCurve.fieldID.parameters.slice(2)).toString(\"hex\")}`);for(let o in I)if(t==I[o].a&&r==I[o].b&&i==I[o].n&&n==I[o].p)return o;for(let o in y)if(t==y[o].a&&r==y[o].b&&i==y[o].n&&n==y[o].p)return o;throw new Error(`Unknown curve: ${t}, ${r}, ${i}, ${n}`)}function Ct(e){if(e===\"P-192\")return I[\"P-192\"];if(e===\"P-224\")return I[\"P-224\"];if(e===\"P-256\")return I[\"P-256\"];if(e===\"P-384\")return I[\"P-384\"];if(e===\"P-521\")return I[\"P-521\"];if(e===\"brainpoolP160r1\")return y.brainpoolP160r1;if(e===\"brainpoolP160t1\")return y.brainpoolP160t1;if(e===\"brainpoolP192r1\")return y.brainpoolP192r1;if(e===\"brainpoolP192t1\")return y.brainpoolP192t1;if(e===\"brainpoolP224r1\")return y.brainpoolP224r1;if(e===\"brainpoolP224t1\")return y.brainpoolP224t1;if(e===\"brainpoolP256r1\")return y.brainpoolP256r1;if(e===\"brainpoolP256t1\")return y.brainpoolP256t1;if(e===\"brainpoolP320r1\")return y.brainpoolP320r1;if(e===\"brainpoolP320t1\")return y.brainpoolP320t1;if(e===\"brainpoolP384r1\")return y.brainpoolP384r1;if(e===\"brainpoolP384t1\")return y.brainpoolP384t1;if(e===\"brainpoolP512r1\")return y.brainpoolP512r1;if(e===\"brainpoolP512t1\")return y.brainpoolP512t1;throw new Error(`Unknown curve: ${e}`)}function Ar(e){let t=e.tbsCertificate.extensions?.find(r=>r.extnID===hr);if(t?.extnValue)try{let i=AsnParser.parse(t.extnValue,AuthorityKeyIdentifier)?.keyIdentifier?.buffer;return i?`0x${Buffer.from(i).toString(\"hex\")}`:void 0}catch{return}}function Ir(e){let t=e.tbsCertificate.extensions?.find(r=>r.extnID===yr);if(t?.extnValue)try{let i=AsnParser.parse(t.extnValue,SubjectKeyIdentifier)?.buffer;return i?`0x${Buffer.from(i).toString(\"hex\")}`:void 0}catch{return}}function uc(e){try{if(e.sid?.subjectKeyIdentifier){let t=e.sid?.subjectKeyIdentifier.toASN()?.getValue();if(t)return `0x${Buffer.from(t).toString(\"hex\")}`}}catch{return}}function Pr(e){let t=e.tbsCertificate.extensions?.find(r=>r.extnID===Cr);if(t?.extnValue){let r=AsnParser.parse(t.extnValue,PrivateKeyUsagePeriod);return {not_before:r.notBefore?Math.floor(r.notBefore.getTime()/1e3):void 0,not_after:r.notAfter?Math.floor(r.notAfter.getTime()/1e3):void 0}}}function Er(e){return BigInt(\"0x\"+Buffer.from(e).toString(\"hex\"))}function fe(e){let t=AsnParser.parse(e.algorithm.parameters,ECParameters),r=Br(t);return {curve:r,publicKey:new Uint8Array(e.subjectPublicKey),keySize:Zi(r)}}function oe(e){let t=AsnParser.parse(e,RsaSaPssParams),r=ne[t.hashAlgorithm.algorithm]??\"\",i=ne[t.maskGenAlgorithm.algorithm]??\"\";return {hashAlgorithm:r.replace(\"SHA-\",\"SHA\"),saltLength:t.saltLength,maskGenAlgorithm:i}}function ae(e){let t=AsnParser.parse(e.subjectPublicKey,RSAPublicKey),r=gr[e.algorithm.algorithm]??\"\";return {modulus:Er(t.modulus),exponent:Er(t.publicExponent),type:r.includes(\"pss\")?\"pss\":\"pkcs\"}}function pc(e){let t=e.tbsCertificate.subjectPublicKeyInfo,r=t.algorithm.algorithm,i=yt[r]||r,n=e.tbsCertificate.signature.algorithm,o=Oe[n]??n;if(i===\"rsaEncryption\"){let a=ae(t).modulus.toString(2).length.toString();return o===\"rsassa-pss\"?`RSAPSS-${a}`:`RSA-${a}`}else if(i===\"ecPublicKey\"){let c=qi(AsnParser.parse(t.algorithm.parameters,ECParameters)),a=new Uint8Array(t.subjectPublicKey),s=BigInt(\"0x\"+Buffer.from(a.slice(1,a.length/2+1)).toString(\"hex\")),d=BigInt(\"0x\"+Buffer.from(a.slice(a.length/2+1)).toString(\"hex\")),l=s.toString(2).length,u=d.toString(2).length,m=parseInt(c.split(\"-\")[1]);if(l>m||u>m)throw new Error(`Key size exceeds size of curve ${c}`);return c}return \"\"}function Tr(e){let t=e.tbsCertificate.signature.algorithm,r=Oe[t]??t;if(r===\"rsassa-pss\")return \"RSA-PSS\";if(r.toLowerCase().includes(\"rsa\"))return \"RSA\";if(r.toLowerCase().includes(\"ecdsa\"))return \"ECDSA\";throw new Error(`Unsupported signature algorithm: ${r}`)}function bt(e){let t=e.replace(\"brainpoolP\",\"\").replace(\"nist\",\"\").replace(\"-\",\"\").replace(\"r1\",\"\").replace(\"t1\",\"\").toLowerCase();return Number(t.replace(\"p\",\"\"))}function mc(e){return _r(e.tbsCertificate.issuer)}function gc(e){return _r(e.tbsCertificate.subject)}function Yi(e){for(let t of e.tbsCertificate.subject)for(let r of t)if(r.type===\"2.5.4.6\")return r.value.toString().toUpperCase()}function _r(e){let t={\"1.2.840.113549.1.9.1\":\"emailAddress\",\"2.5.4.10\":\"O\",\"2.5.4.11\":\"OU\",\"2.5.4.17\":\"postalCode\",\"2.5.4.20\":\"telephoneNumber\",\"2.5.4.3\":\"CN\",\"2.5.4.4\":\"SN\",\"2.5.4.5\":\"serialNumber\",\"2.5.4.6\":\"C\",\"2.5.4.7\":\"L\",\"2.5.4.8\":\"ST\",\"2.5.4.9\":\"street\"};return e.map(r=>r.map(i=>`${t[i.type]||i.type}=${i.value}`).join(\", \")).join(\", \")}function fc(e){return `-----BEGIN CERTIFICATE-----\n${Buffer.from(e).toString(\"base64\").match(/.{1,64}/g)?.join(`\n`)}\n-----END CERTIFICATE-----`}var Dr={\"P-192\":192,\"P-224\":224,\"P-256\":256,\"P-384\":384,\"P-521\":521,brainpoolP160r1:160,brainpoolP160t1:160,brainpoolP192r1:192,brainpoolP192t1:192,brainpoolP224r1:224,brainpoolP224t1:224,brainpoolP256r1:256,brainpoolP256t1:256,brainpoolP320r1:320,brainpoolP320t1:320,brainpoolP384r1:384,brainpoolP384t1:384,brainpoolP512r1:512,brainpoolP512t1:512};function Zi(e){if(Dr[e]===void 0)throw new Error(`Unknown curve: ${e}`);return Dr[e]}function Rr(e){let t=e.tbsCertificate.subjectPublicKeyInfo.algorithm.algorithm,r=yt[t]??t,i=e.tbsCertificate.validity,n=Math.floor(new Date(i.notBefore.getTime()).getTime()/1e3),o=Math.floor(new Date(i.notAfter.getTime()).getTime()/1e3),c=Yi(e);if(!c)throw new Error(\"Country is missing from certificate\");if(c.length!==2)throw new Error(\"Invalid country code\");let a=ge(c);if(r===\"rsaEncryption\"){let s=ae(e.tbsCertificate.subjectPublicKeyInfo);return {country:a,signature_algorithm:Tr(e),hash_algorithm:Nr(e),public_key:{type:\"RSA\",modulus:`0x${s.modulus.toString(16)}`,exponent:Number(s.exponent),key_size:Ji(e.tbsCertificate.subjectPublicKeyInfo)},validity:{not_before:n,not_after:o},authority_key_identifier:Ar(e),subject_key_identifier:Ir(e),private_key_usage_period:Pr(e)}}else if(r===\"ecPublicKey\"){let s=fe(e.tbsCertificate.subjectPublicKeyInfo);return {country:a,signature_algorithm:Tr(e),hash_algorithm:Nr(e),public_key:{type:\"EC\",curve:s.curve,key_size:s.keySize,public_key_x:`0x${Buffer.from(s.publicKey.slice(1,s.publicKey.length/2+1)).toString(\"hex\")}`,public_key_y:`0x${Buffer.from(s.publicKey.slice(s.publicKey.length/2+1)).toString(\"hex\")}`},validity:{not_before:n,not_after:o},authority_key_identifier:Ar(e),subject_key_identifier:Ir(e),private_key_usage_period:Pr(e)}}else throw new Error(`Unsupported public key type: ${r}`)}function Nr(e){let t=e.tbsCertificate.signature.algorithm,r=Oe[t]??t;if(r===\"rsassa-pss\"){let i=oe(e.tbsCertificate.signature.parameters);return i.hashAlgorithm.slice(0,3)+\"-\"+i.hashAlgorithm.slice(3)}else return fr[r]}function Ji(e){return ae(e).modulus.toString(2).length}function Sc(e){try{let t=e.replace(/(-----(BEGIN|END) CERTIFICATE-----|[\\n\\r])/g,\"\"),r=Buffer.from(t,\"base64\"),i=AsnParser.parse(r,Certificate);return Rr(i)}catch(t){throw console.error(\"Error parsing PEM certificate:\",t),new Error(\"Error parsing PEM certificate\")}}function hc(e){let t=[];try{let r=/(-----BEGIN CERTIFICATE-----[\\s\\S]*?-----END CERTIFICATE-----)/g,i=e.match(r)||[];for(let n of i){let o=n.replace(/(-----(BEGIN|END) CERTIFICATE-----|[\\n\\r])/g,\"\"),c=Buffer.from(o,\"base64\");try{let a=AsnParser.parse(c,Certificate);t.push(Rr(a));}catch(a){console.error(\"Error parsing x509 certificate:\",a);}}}catch(r){throw console.error(\"Error parsing PEM certificates:\",r),new Error(\"Error parsing PEM certificates\")}return t}var Cc=[\"North Korea\",\"Iran\",\"Iraq\",\"Libya\",\"Somalia\",\"Sudan\",\"Syrian Arab Republic\",\"Yemen\"],vr=[\"Austria\",\"Belgium\",\"Bulgaria\",\"Croatia\",\"Cyprus\",\"Czech Republic\",\"Denmark\",\"Estonia\",\"Finland\",\"France\",\"Germany\",\"Greece\",\"Hungary\",\"Ireland\",\"Italy\",\"Latvia\",\"Lithuania\",\"Luxembourg\",\"Malta\",\"Netherlands\",\"Poland\",\"Portugal\",\"Romania\",\"Slovakia\",\"Slovenia\",\"Spain\",\"Sweden\"],bc=[...vr,\"Iceland\",\"Liechtenstein\",\"Norway\"],Ac=[...vr.filter(e=>e!==\"Cyprus\"&&e!==\"Ireland\"),\"Switzerland\",\"Iceland\",\"Liechtenstein\",\"Norway\"],Ic=[\"Brunei Darussalam\",\"Cambodia\",\"Indonesia\",\"Lao People's Democratic Republic\",\"Malaysia\",\"Myanmar\",\"Philippines\",\"Singapore\",\"Thailand\",\"Vietnam\"],Pc=[\"Argentina\",\"Brazil\",\"Chile\",\"Colombia\",\"Paraguay\",\"Uruguay\"],At=256,S=95,D=700;var He=class e{constructor(t,r,i=2){requireFunction(t,\"hash\"),requireNumber(r,\"depth\"),requireNumber(i,\"arity\"),this._hash=t,this._depth=r,this._zeroes=[],this._nodes=[],this._arity=i;}get root(){return this._nodes[this.depth][0]}get depth(){return this._depth}get leaves(){return this._nodes[0].slice()}get zeroes(){return this._zeroes}get arity(){return this._arity}indexOf(t){return requireTypes(t,\"leaf\",[\"number\",\"string\",\"bigint\"]),this._nodes[0].indexOf(t)}async initialize(t,r=[]){if(requireTypes(t,\"zeroValue\",[\"number\",\"string\",\"bigint\"]),requireObject(r,\"leaves\"),r.length>this._arity**this._depth)throw new Error(`The tree cannot contain more than ${this._arity**this._depth} leaves`);for(let i=0;i<this.depth;i+=1)this._zeroes.push(t),this._nodes[i]=[],t=await this._hash(Array(this._arity).fill(t));if(this._nodes[this.depth]=[],r.length>0){this._nodes[0]=r;for(let i=0;i<this.depth;i+=1)for(let n=0;n<Math.ceil(this._nodes[i].length/this.arity);n+=1){let o=n*this.arity,c=[];for(let a=0;a<this.arity;a+=1)c.push(this._nodes[i][o+a]??this.zeroes[i]);this._nodes[i+1][n]=await this._hash(c);}}else this._nodes[this.depth][0]=t;Object.freeze(this._zeroes),Object.freeze(this._nodes);}async insert(t){if(requireTypes(t,\"leaf\",[\"number\",\"string\",\"bigint\"]),this._nodes[0].length>=this.arity**this.depth)throw new Error(\"The tree is full\");let r=t,i=this._nodes[0].length;for(let n=0;n<this.depth;n+=1){let o=i%this.arity,c=i-o,a=c+this.arity,s=[];this._nodes[n][i]=r;for(let d=c;d<a;d+=1)d<this._nodes[n].length?s.push(this._nodes[n][d]):s.push(this._zeroes[n]);r=await this._hash(s),i=Math.floor(i/this.arity);}this._nodes[this.depth][0]=r;}async delete(t){await this.update(t,this.zeroes[0]);}async update(t,r){if(requireNumber(t,\"index\"),t<0||t>=this._nodes[0].length)throw new Error(\"The leaf does not exist in this tree\");if(r===this._nodes[0][t])return;let i=r;for(let n=0;n<this.depth;n+=1){let o=t%this.arity,c=t-o,a=c+this.arity,s=[];this._nodes[n][t]=i;for(let d=c;d<a;d+=1)d<this._nodes[n].length?s.push(this._nodes[n][d]):s.push(this.zeroes[n]);i=await this._hash(s),t=Math.floor(t/this.arity);}this._nodes[this.depth][0]=i;}createProof(t){if(requireNumber(t,\"index\"),t<0||t>=this._nodes[0].length)throw new Error(\"The leaf does not exist in this tree\");let r=[],i=[],n=t;for(let o=0;o<this.depth;o+=1){let c=t%this.arity,a=t-c,s=a+this.arity;i[o]=c,r[o]=[];for(let d=a;d<s;d+=1)d!==t&&(d<this._nodes[o].length?r[o].push(this._nodes[o][d]):r[o].push(this.zeroes[o]));t=Math.floor(t/this.arity);}return {root:this.root,leaf:this._nodes[0][n],pathIndices:i,siblings:r,leafIndex:n}}async verifyProof(t){return e.verifyProof(t,this._hash)}static async verifyProof(t,r){requireObject(t,\"proof\"),requireTypes(t.root,\"proof.root\",[\"number\",\"string\",\"bigint\"]),requireTypes(t.leaf,\"proof.leaf\",[\"number\",\"string\",\"bigint\"]),requireArray(t.siblings,\"proof.siblings\"),requireArray(t.pathIndices,\"proof.pathIndices\");let i=t.leaf;for(let n=0;n<t.siblings.length;n+=1){let o=t.siblings[n].slice();o.splice(t.pathIndices[n],0,i),i=await r(o);}return t.root===i}serialize(){return this._nodes.map(t=>t.map(r=>`0x${r.toString(16).padStart(64,\"0\")}`))}loadFromSerialized(t){if(!Array.isArray(t)||t.length===0)throw new Error(\"Invalid serialized tree: empty payload\");let r=this.depth+1;if(t.length!==r)throw new Error(`Serialized tree depth mismatch: expected ${r} layers, got ${t.length}`);for(let i=0;i<t.length;i+=1){let n=t[i];if(!Array.isArray(n))throw new Error(`Invalid serialized tree: layer ${i} is not an array`);this._nodes[i]=n.map(o=>BigInt(o));}if(!this._nodes[this.depth]||this._nodes[this.depth][0]===void 0)throw new Error(\"Invalid serialized tree: missing root\");if(this.zeroes.length!==this.depth){this.zeroes.length=0;for(let i=0;i<this.depth;i+=1)this.zeroes.push(0n);}}static fromSerialized(t,r,i=2){if(!Array.isArray(r)||r.length===0)throw new Error(\"Invalid serialized tree: empty payload\");let n=r.length-1,o=new e(t,n,i);return o.loadFromSerialized(r),o}};var Ge=0n,t1=BigInt(\"0x2523648240000001ba344d80000000086121000000000013a700000000000012\"),ce=class e{constructor(t,r){this.zeroes=[];this.layers=[];this.leaves=[];this.depth=t,this.hash=r;}static async create(t,r){return new e(t,r)}get root(){return this.layers[this.depth]&&this.layers[this.depth][0]!==void 0?this.layers[this.depth][0]:this.zeroes[this.depth-1]??Ge}async initializeAndSort(t){let r=Array.from(new Set(t.map(i=>BigInt(i)))).sort((i,n)=>i<n?-1:i>n?1:0);await this.initialize(r);}async initialize(t){let r=1<<this.depth;if(t.length>r)throw new Error(`Too many leaves for depth ${this.depth}: ${t.length} > ${r}`);t.unshift(0n),t.push(t1),this.leaves=t,await this.computeZeroes();let i=new Array(r);for(let n=0;n<r;n+=1)i[n]=t[n]??Ge;this.layers=new Array(this.depth+1),this.layers[0]=i;for(let n=0;n<this.depth;n+=1){let o=this.layers[n],c=new Array(Math.ceil(o.length/2));for(let a=0;a<o.length;a+=2){let s=o[a]??this.zeroes[n],d=o[a+1]??this.zeroes[n];c[a>>1]=await this.hash([s,d]);}this.layers[n+1]=c;}}exists(t){let{exists:r}=this.findBoundaries(t);return r}createMembershipProof(t){let{exists:r,index:i}=this.findBoundaries(t);if(!r||i===null)throw new Error(\"Leaf not found\");let n=[],c=i;for(let a=0;a<this.depth;a+=1){let s=c&1,d=s?c-1:c+1,l=this.layers[a][d]??this.zeroes[a];n.push(l),c>>=1;}return {root:this.root,leaf:t,leafIndex:i,siblings:n}}static async verifyMembershipProof(t,r){let i=t.leaf,n=t.leafIndex;for(let o=0;o<t.siblings.length;o+=1){let c=t.siblings[o],a=(n&1)===1;n>>=1,i=await r(a?[c,i]:[i,c]);}return i===t.root}createNonMembershipProof(t){let{exists:r,leftIndex:i,rightIndex:n}=this.findBoundaries(t);if(r)throw new Error(\"Target exists; use membership proof\");let o=i!==null?{leaf:this.leaves[i],proof:this.createMembershipProof(this.leaves[i])}:void 0,c=n!==null?{leaf:this.leaves[n],proof:this.createMembershipProof(this.leaves[n])}:void 0;return {root:this.root,target:t,left:o,right:c}}static async verifyNonMembershipProof(t,r){return !(!t.left&&!t.right||t.left&&(!await e.verifyMembershipProof(t.left.proof,r)||t.left.proof.root!==t.root||!(t.left.leaf<t.target))||t.right&&(!await e.verifyMembershipProof(t.right.proof,r)||t.right.proof.root!==t.root||!(t.target<t.right.leaf))||t.left&&t.right&&(t.left.leaf>t.target||t.right.leaf<t.target||!(t.left.leaf<t.right.leaf)))}findBoundaries(t){let r=this.leaves.length;if(r===0)return {exists:false,index:null,leftIndex:null,rightIndex:null};let i=0,n=r;for(;i<n;){let d=i+n>>1;this.leaves[d]<t?i=d+1:n=d;}let o=i,c=o<r&&this.leaves[o]===t,a=o-1>=0?o-1:null,s=(c?o+1:o)<r?c?o+1:o:null;return {exists:c,index:c?o:null,leftIndex:a,rightIndex:s}}async computeZeroes(){this.zeroes=new Array(this.depth);let t=Ge;for(let r=0;r<this.depth;r+=1)t=await this.hash([t,t]),this.zeroes[r]=t;}serialize(){return this.layers.map(t=>t.map(r=>`0x${r.toString(16).padStart(64,\"0\")}`))}async loadFromSerialized(t){if(!Array.isArray(t)||t.length===0)throw new Error(\"Invalid serialized tree: empty payload\");let r=this.depth+1;if(t.length!==r)throw new Error(`Serialized tree depth mismatch: expected ${r} layers, got ${t.length}`);for(let o=0;o<t.length;o+=1){let c=t[o];if(!Array.isArray(c))throw new Error(`Invalid serialized tree: layer ${o} is not an array`);this.layers[o]=c.map(a=>BigInt(a));}for(let o=0;o<=this.depth;o+=1){let c=1<<this.depth-o,a=this.layers[o]?.length;if(a!==c)throw new Error(`Invalid serialized tree: layer ${o} length ${a} !== expected ${c}`)}if(this.layers[this.depth][0]===void 0)throw new Error(\"Invalid serialized tree: missing root\");await this.computeZeroes();let i=this.layers[0],n=i.length;for(;n>0&&i[n-1]===Ge;)n-=1;this.leaves=i.slice(0,n);}static async fromSerialized(t,r){let i=new e(t.length-1,r);return await i.loadFromSerialized(t),i}};async function R(e){return poseidon2HashAsync(e.map(t=>BigInt(t)))}async function Ne(e,t,r){if(t<0||t>=e.length)throw new Error(\"Invalid index\");let i=0,n=2,o=new He(R,r,n);await o.initialize(i,e);let c=o.createProof(t);return {root:lt(BigInt(c.root)),index:c.leafIndex,path:c.siblings.flatMap(a=>lt(BigInt(a)))}}me();var se={\"0.2.262.1.10\":{d:\"Telesec\",c:\"Deutsche Telekom\"},\"0.2.262.1.10.0\":{d:\"extension\",c:\"Telesec\"},\"0.2.262.1.10.1\":{d:\"mechanism\",c:\"Telesec\"},\"0.2.262.1.10.1.0\":{d:\"authentication\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.0.1\":{d:\"passwordAuthentication\",c:\"Telesec authentication\"},\"0.2.262.1.10.1.0.2\":{d:\"protectedPasswordAuthentication\",c:\"Telesec authentication\"},\"0.2.262.1.10.1.0.3\":{d:\"oneWayX509Authentication\",c:\"Telesec authentication\"},\"0.2.262.1.10.1.0.4\":{d:\"twoWayX509Authentication\",c:\"Telesec authentication\"},\"0.2.262.1.10.1.0.5\":{d:\"threeWayX509Authentication\",c:\"Telesec authentication\"},\"0.2.262.1.10.1.0.6\":{d:\"oneWayISO9798Authentication\",c:\"Telesec authentication\"},\"0.2.262.1.10.1.0.7\":{d:\"twoWayISO9798Authentication\",c:\"Telesec authentication\"},\"0.2.262.1.10.1.0.8\":{d:\"telekomAuthentication\",c:\"Telesec authentication\"},\"0.2.262.1.10.1.1\":{d:\"signature\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.1.1\":{d:\"md4WithRSAAndISO9697\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.1.2\":{d:\"md4WithRSAAndTelesecSignatureStandard\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.1.3\":{d:\"md5WithRSAAndISO9697\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.1.4\":{d:\"md5WithRSAAndTelesecSignatureStandard\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.1.5\":{d:\"ripemd160WithRSAAndTelekomSignatureStandard\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.1.9\":{d:\"hbciRsaSignature\",c:\"Telesec signature\"},\"0.2.262.1.10.1.2\":{d:\"encryption\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.2.0\":{d:\"none\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.1\":{d:\"rsaTelesec\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.2\":{d:\"des\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.2.1\":{d:\"desECB\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.2.2\":{d:\"desCBC\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.2.3\":{d:\"desOFB\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.2.4\":{d:\"desCFB8\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.2.5\":{d:\"desCFB64\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.3\":{d:\"des3\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.3.1\":{d:\"des3ECB\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.3.2\":{d:\"des3CBC\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.3.3\":{d:\"des3OFB\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.3.4\":{d:\"des3CFB8\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.3.5\":{d:\"des3CFB64\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.4\":{d:\"magenta\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.5\":{d:\"idea\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.5.1\":{d:\"ideaECB\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.5.2\":{d:\"ideaCBC\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.5.3\":{d:\"ideaOFB\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.5.4\":{d:\"ideaCFB8\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.2.5.5\":{d:\"ideaCFB64\",c:\"Telesec encryption\"},\"0.2.262.1.10.1.3\":{d:\"oneWayFunction\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.3.1\":{d:\"md4\",c:\"Telesec one-way function\"},\"0.2.262.1.10.1.3.2\":{d:\"md5\",c:\"Telesec one-way function\"},\"0.2.262.1.10.1.3.3\":{d:\"sqModNX509\",c:\"Telesec one-way function\"},\"0.2.262.1.10.1.3.4\":{d:\"sqModNISO\",c:\"Telesec one-way function\"},\"0.2.262.1.10.1.3.5\":{d:\"ripemd128\",c:\"Telesec one-way function\"},\"0.2.262.1.10.1.3.6\":{d:\"hashUsingBlockCipher\",c:\"Telesec one-way function\"},\"0.2.262.1.10.1.3.7\":{d:\"mac\",c:\"Telesec one-way function\"},\"0.2.262.1.10.1.3.8\":{d:\"ripemd160\",c:\"Telesec one-way function\"},\"0.2.262.1.10.1.4\":{d:\"fecFunction\",c:\"Telesec mechanism\"},\"0.2.262.1.10.1.4.1\":{d:\"reedSolomon\",c:\"Telesec mechanism\"},\"0.2.262.1.10.2\":{d:\"module\",c:\"Telesec\"},\"0.2.262.1.10.2.0\":{d:\"algorithms\",c:\"Telesec module\"},\"0.2.262.1.10.2.1\":{d:\"attributeTypes\",c:\"Telesec module\"},\"0.2.262.1.10.2.2\":{d:\"certificateTypes\",c:\"Telesec module\"},\"0.2.262.1.10.2.3\":{d:\"messageTypes\",c:\"Telesec module\"},\"0.2.262.1.10.2.4\":{d:\"plProtocol\",c:\"Telesec module\"},\"0.2.262.1.10.2.5\":{d:\"smeAndComponentsOfSme\",c:\"Telesec module\"},\"0.2.262.1.10.2.6\":{d:\"fec\",c:\"Telesec module\"},\"0.2.262.1.10.2.7\":{d:\"usefulDefinitions\",c:\"Telesec module\"},\"0.2.262.1.10.2.8\":{d:\"stefiles\",c:\"Telesec module\"},\"0.2.262.1.10.2.9\":{d:\"sadmib\",c:\"Telesec module\"},\"0.2.262.1.10.2.10\":{d:\"electronicOrder\",c:\"Telesec module\"},\"0.2.262.1.10.2.11\":{d:\"telesecTtpAsymmetricApplication\",c:\"Telesec module\"},\"0.2.262.1.10.2.12\":{d:\"telesecTtpBasisApplication\",c:\"Telesec module\"},\"0.2.262.1.10.2.13\":{d:\"telesecTtpMessages\",c:\"Telesec module\"},\"0.2.262.1.10.2.14\":{d:\"telesecTtpTimeStampApplication\",c:\"Telesec module\"},\"0.2.262.1.10.3\":{d:\"objectClass\",c:\"Telesec\"},\"0.2.262.1.10.3.0\":{d:\"telesecOtherName\",c:\"Telesec object class\"},\"0.2.262.1.10.3.1\":{d:\"directory\",c:\"Telesec object class\"},\"0.2.262.1.10.3.2\":{d:\"directoryType\",c:\"Telesec object class\"},\"0.2.262.1.10.3.3\":{d:\"directoryGroup\",c:\"Telesec object class\"},\"0.2.262.1.10.3.4\":{d:\"directoryUser\",c:\"Telesec object class\"},\"0.2.262.1.10.3.5\":{d:\"symmetricKeyEntry\",c:\"Telesec object class\"},\"0.2.262.1.10.4\":{d:\"package\",c:\"Telesec\"},\"0.2.262.1.10.5\":{d:\"parameter\",c:\"Telesec\"},\"0.2.262.1.10.6\":{d:\"nameBinding\",c:\"Telesec\"},\"0.2.262.1.10.7\":{d:\"attribute\",c:\"Telesec\"},\"0.2.262.1.10.7.0\":{d:\"applicationGroupIdentifier\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.1\":{d:\"certificateType\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.2\":{d:\"telesecCertificate\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.3\":{d:\"certificateNumber\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.4\":{d:\"certificateRevocationList\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.5\":{d:\"creationDate\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.6\":{d:\"issuer\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.7\":{d:\"namingAuthority\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.8\":{d:\"publicKeyDirectory\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.9\":{d:\"securityDomain\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.10\":{d:\"subject\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.11\":{d:\"timeOfRevocation\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.12\":{d:\"userGroupReference\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.13\":{d:\"validity\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.14\":{d:\"zert93\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.15\":{d:\"securityMessEnv\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.16\":{d:\"anonymizedPublicKeyDirectory\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.17\":{d:\"telesecGivenName\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.18\":{d:\"nameAdditions\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.19\":{d:\"telesecPostalCode\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.20\":{d:\"nameDistinguisher\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.21\":{d:\"telesecCertificateList\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.22\":{d:\"teletrustCertificateList\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.23\":{d:\"x509CertificateList\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.24\":{d:\"timeOfIssue\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.25\":{d:\"physicalCardNumber\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.26\":{d:\"fileType\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.27\":{d:\"ctlFileIsArchive\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.28\":{d:\"emailAddress\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.29\":{d:\"certificateTemplateList\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.30\":{d:\"directoryName\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.31\":{d:\"directoryTypeName\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.32\":{d:\"directoryGroupName\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.33\":{d:\"directoryUserName\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.34\":{d:\"revocationFlag\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.35\":{d:\"symmetricKeyEntryName\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.36\":{d:\"glNumber\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.37\":{d:\"goNumber\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.38\":{d:\"gKeyData\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.39\":{d:\"zKeyData\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.40\":{d:\"ktKeyData\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.41\":{d:\"ktKeyNumber\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.51\":{d:\"timeOfRevocationGen\",c:\"Telesec attribute\"},\"0.2.262.1.10.7.52\":{d:\"liabilityText\",c:\"Telesec attribute\"},\"0.2.262.1.10.8\":{d:\"attributeGroup\",c:\"Telesec\"},\"0.2.262.1.10.9\":{d:\"action\",c:\"Telesec\"},\"0.2.262.1.10.10\":{d:\"notification\",c:\"Telesec\"},\"0.2.262.1.10.11\":{d:\"snmp-mibs\",c:\"Telesec\"},\"0.2.262.1.10.11.1\":{d:\"securityApplication\",c:\"Telesec SNMP MIBs\"},\"0.2.262.1.10.12\":{d:\"certAndCrlExtensionDefinitions\",c:\"Telesec\"},\"0.2.262.1.10.12.0\":{d:\"liabilityLimitationFlag\",c:\"Telesec cert/CRL extension\"},\"0.2.262.1.10.12.1\":{d:\"telesecCertIdExt\",c:\"Telesec cert/CRL extension\"},\"0.2.262.1.10.12.2\":{d:\"Telesec policyIdentifier\",c:\"Telesec cert/CRL extension\"},\"0.2.262.1.10.12.3\":{d:\"telesecPolicyQualifierID\",c:\"Telesec cert/CRL extension\"},\"0.2.262.1.10.12.4\":{d:\"telesecCRLFilteredExt\",c:\"Telesec cert/CRL extension\"},\"0.2.262.1.10.12.5\":{d:\"telesecCRLFilterExt\",c:\"Telesec cert/CRL extension\"},\"0.2.262.1.10.12.6\":{d:\"telesecNamingAuthorityExt\",c:\"Telesec cert/CRL extension\"},\"0.4.0.127.0.7\":{d:\"bsi\",c:\"BSI TR-03110/TR-03111\"},\"0.4.0.127.0.7.1\":{d:\"bsiEcc\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1\":{d:\"bsifieldType\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.1\":{d:\"bsiPrimeField\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.2\":{d:\"bsiCharacteristicTwoField\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.2.2\":{d:\"bsiECTLVKeyFormat\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.2.2.1\":{d:\"bsiECTLVPublicKey\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.2.3\":{d:\"bsiCharacteristicTwoBasis\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.2.3.1\":{d:\"bsiGnBasis\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.2.3.2\":{d:\"bsiTpBasis\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.2.3.3\":{d:\"bsiPpBasis\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.4.1\":{d:\"bsiEcdsaSignatures\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.4.1.1\":{d:\"bsiEcdsaWithSHA1\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.4.1.2\":{d:\"bsiEcdsaWithSHA224\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.4.1.3\":{d:\"bsiEcdsaWithSHA256\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.4.1.4\":{d:\"bsiEcdsaWithSHA384\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.4.1.5\":{d:\"bsiEcdsaWithSHA512\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.4.1.6\":{d:\"bsiEcdsaWithRIPEMD160\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.1\":{d:\"bsiEckaEgX963KDF\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.1.1\":{d:\"bsiEckaEgX963KDFWithSHA1\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.1.2\":{d:\"bsiEckaEgX963KDFWithSHA224\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.1.3\":{d:\"bsiEckaEgX963KDFWithSHA256\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.1.4\":{d:\"bsiEckaEgX963KDFWithSHA384\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.1.5\":{d:\"bsiEckaEgX963KDFWithSHA512\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.1.6\":{d:\"bsiEckaEgX963KDFWithRIPEMD160\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.2\":{d:\"bsiEckaEgSessionKDF\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.2.1\":{d:\"bsiEckaEgSessionKDFWith3DES\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.2.2\":{d:\"bsiEckaEgSessionKDFWithAES128\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.2.3\":{d:\"bsiEckaEgSessionKDFWithAES192\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.1.2.4\":{d:\"bsiEckaEgSessionKDFWithAES256\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2\":{d:\"bsiEckaDH\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.1\":{d:\"bsiEckaDHX963KDF\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.1.1\":{d:\"bsiEckaDHX963KDFWithSHA1\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.1.2\":{d:\"bsiEckaDHX963KDFWithSHA224\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.1.3\":{d:\"bsiEckaDHX963KDFWithSHA256\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.1.4\":{d:\"bsiEckaDHX963KDFWithSHA384\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.1.5\":{d:\"bsiEckaDHX963KDFWithSHA512\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.1.6\":{d:\"bsiEckaDHX963KDFWithRIPEMD160\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.2\":{d:\"bsiEckaDHSessionKDF\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.2.1\":{d:\"bsiEckaDHSessionKDFWith3DES\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.2.2\":{d:\"bsiEckaDHSessionKDFWithAES128\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.2.3\":{d:\"bsiEckaDHSessionKDFWithAES192\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.1.5.2.2.4\":{d:\"bsiEckaDHSessionKDFWithAES256\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.2\":{d:\"bsiEcKeyType\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.2.1\":{d:\"bsiEcPublicKey\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.5.1\":{d:\"bsiKaeg\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.5.1.1\":{d:\"bsiKaegWithX963KDF\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.1.5.1.2\":{d:\"bsiKaegWith3DESKDF\",c:\"BSI TR-03111\"},\"0.4.0.127.0.7.2.2.1\":{d:\"bsiPK\",c:\"BSI TR-03110. Formerly known as bsiCA, now moved to ...2.2.3.x\"},\"0.4.0.127.0.7.2.2.1.1\":{d:\"bsiPK_DH\",c:\"BSI TR-03110. Formerly known as bsiCA_DH, now moved to ...2.2.3.x\"},\"0.4.0.127.0.7.2.2.1.2\":{d:\"bsiPK_ECDH\",c:\"BSI TR-03110. Formerly known as bsiCA_ECDH, now moved to ...2.2.3.x\"},\"0.4.0.127.0.7.2.2.2\":{d:\"bsiTA\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.1\":{d:\"bsiTA_RSA\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.1.1\":{d:\"bsiTA_RSAv1_5_SHA1\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.1.2\":{d:\"bsiTA_RSAv1_5_SHA256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.1.3\":{d:\"bsiTA_RSAPSS_SHA1\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.1.4\":{d:\"bsiTA_RSAPSS_SHA256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.1.5\":{d:\"bsiTA_RSAv1_5_SHA512\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.1.6\":{d:\"bsiTA_RSAPSS_SHA512\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.2\":{d:\"bsiTA_ECDSA\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.2.1\":{d:\"bsiTA_ECDSA_SHA1\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.2.2\":{d:\"bsiTA_ECDSA_SHA224\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.2.3\":{d:\"bsiTA_ECDSA_SHA256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.2.4\":{d:\"bsiTA_ECDSA_SHA384\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.2.2.5\":{d:\"bsiTA_ECDSA_SHA512\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3\":{d:\"bsiCA\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.1\":{d:\"bsiCA_DH\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.1.1\":{d:\"bsiCA_DH_3DES_CBC_CBC\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.1.2\":{d:\"bsiCA_DH_AES_CBC_CMAC_128\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.1.3\":{d:\"bsiCA_DH_AES_CBC_CMAC_192\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.1.4\":{d:\"bsiCA_DH_AES_CBC_CMAC_256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.2\":{d:\"bsiCA_ECDH\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.2.1\":{d:\"bsiCA_ECDH_3DES_CBC_CBC\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.2.2\":{d:\"bsiCA_ECDH_AES_CBC_CMAC_128\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.2.3\":{d:\"bsiCA_ECDH_AES_CBC_CMAC_192\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.3.2.4\":{d:\"bsiCA_ECDH_AES_CBC_CMAC_256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4\":{d:\"bsiPACE\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.1\":{d:\"bsiPACE_DH_GM\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.1.1\":{d:\"bsiPACE_DH_GM_3DES_CBC_CBC\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.1.2\":{d:\"bsiPACE_DH_GM_AES_CBC_CMAC_128\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.1.3\":{d:\"bsiPACE_DH_GM_AES_CBC_CMAC_192\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.1.4\":{d:\"bsiPACE_DH_GM_AES_CBC_CMAC_256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.2\":{d:\"bsiPACE_ECDH_GM\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.2.1\":{d:\"bsiPACE_ECDH_GM_3DES_CBC_CBC\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.2.2\":{d:\"bsiPACE_ECDH_GM_AES_CBC_CMAC_128\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.2.3\":{d:\"bsiPACE_ECDH_GM_AES_CBC_CMAC_192\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.2.4\":{d:\"bsiPACE_ECDH_GM_AES_CBC_CMAC_256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.3\":{d:\"bsiPACE_DH_IM\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.3.1\":{d:\"bsiPACE_DH_IM_3DES_CBC_CBC\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.3.2\":{d:\"bsiPACE_DH_IM_AES_CBC_CMAC_128\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.3.3\":{d:\"bsiPACE_DH_IM_AES_CBC_CMAC_192\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.3.4\":{d:\"bsiPACE_DH_IM_AES_CBC_CMAC_256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.4\":{d:\"bsiPACE_ECDH_IM\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.4.1\":{d:\"bsiPACE_ECDH_IM_3DES_CBC_CBC\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.4.2\":{d:\"bsiPACE_ECDH_IM_AES_CBC_CMAC_128\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.4.3\":{d:\"bsiPACE_ECDH_IM_AES_CBC_CMAC_192\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.4.4.4\":{d:\"bsiPACE_ECDH_IM_AES_CBC_CMAC_256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5\":{d:\"bsiRI\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.1\":{d:\"bsiRI_DH\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.1.1\":{d:\"bsiRI_DH_SHA1\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.1.2\":{d:\"bsiRI_DH_SHA224\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.1.3\":{d:\"bsiRI_DH_SHA256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.1.4\":{d:\"bsiRI_DH_SHA384\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.1.5\":{d:\"bsiRI_DH_SHA512\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.2\":{d:\"bsiRI_ECDH\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.2.1\":{d:\"bsiRI_ECDH_SHA1\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.2.2\":{d:\"bsiRI_ECDH_SHA224\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.2.3\":{d:\"bsiRI_ECDH_SHA256\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.2.4\":{d:\"bsiRI_ECDH_SHA384\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.5.2.5\":{d:\"bsiRI_ECDH_SHA512\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.6\":{d:\"bsiCardInfo\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.7\":{d:\"bsiEidSecurity\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.2.2.8\":{d:\"bsiPT\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.2\":{d:\"bsiEACRoles\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.2.1\":{d:\"bsiEACRolesIS\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.2.2\":{d:\"bsiEACRolesAT\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.2.3\":{d:\"bsiEACRolesST\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.3\":{d:\"bsiTAv2ce\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.3.1\":{d:\"bsiTAv2ceDescription\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.3.1.1\":{d:\"bsiTAv2ceDescriptionPlainText\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.3.1.2\":{d:\"bsiTAv2ceDescriptionIA5String\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.3.1.3\":{d:\"bsiTAv2ceDescriptionOctetString\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.3.2\":{d:\"bsiTAv2ceTerminalSector\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.4\":{d:\"bsiAuxData\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.4.1\":{d:\"bsiAuxDataBirthday\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.4.2\":{d:\"bsiAuxDataExpireDate\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.4.3\":{d:\"bsiAuxDataCommunityID\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5\":{d:\"bsiDefectList\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.1\":{d:\"bsiDefectAuthDefect\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.1.1\":{d:\"bsiDefectCertRevoked\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.1.2\":{d:\"bsiDefectCertReplaced\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.1.3\":{d:\"bsiDefectChipAuthKeyRevoked\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.1.4\":{d:\"bsiDefectActiveAuthKeyRevoked\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.2\":{d:\"bsiDefectEPassportDefect\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.2.1\":{d:\"bsiDefectEPassportDGMalformed\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.2.2\":{d:\"bsiDefectSODInvalid\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.3\":{d:\"bsiDefectEIDDefect\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.3.1\":{d:\"bsiDefectEIDDGMalformed\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.3.2\":{d:\"bsiDefectEIDIntegrity\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.4\":{d:\"bsiDefectDocumentDefect\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.4.1\":{d:\"bsiDefectCardSecurityMalformed\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.4.2\":{d:\"bsiDefectChipSecurityMalformed\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.5.4.3\":{d:\"bsiDefectPowerDownReq\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.1.6\":{d:\"bsiListContentDescription\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.2.1\":{d:\"bsiSecurityObject\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.2.2\":{d:\"bsiBlackList\",c:\"BSI TR-03110\"},\"0.4.0.127.0.7.3.4.2.2\":{d:\"bsiSignedUpdateDeviceAdmin\",c:\"BSI TR-03109\"},\"0.4.0.127.0.7.4.1.1.1\":{d:\"bsiCertReqMsgs\",c:\"BSI TR-03109\"},\"0.4.0.127.0.7.4.1.1.2\":{d:\"bsiCertReqMsgswithOuterSignature\",c:\"BSI TR-03109\"},\"0.4.0.127.0.7.4.1.1.3\":{d:\"bsiAuthorizedCertReqMsgs\",c:\"BSI TR-03109\"},\"0.4.0.127.0.7.4.1.2.2\":{d:\"bsiSignedRevReqs\",c:\"BSI TR-03109\"},\"0.4.0.1862\":{d:\"etsiQcsProfile\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1\":{d:\"etsiQcs\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.1\":{d:\"etsiQcsCompliance\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.2\":{d:\"etsiQcsLimitValue\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.3\":{d:\"etsiQcsRetentionPeriod\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.4\":{d:\"etsiQcsQcSSCD\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.5\":{d:\"etsiQcsQcPDS\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.6\":{d:\"etsiQcsQcType\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.6.1\":{d:\"etsiQcsQctEsign\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.6.2\":{d:\"etsiQcsQctEseal\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.1862.1.6.3\":{d:\"etsiQcsQctWeb\",c:\"ETSI TS 101 862 Qualified Certificates\"},\"0.4.0.2042.1.1\":{d:\"normalisedCertificatePolicy\",c:\"ETSI TS 102 042 Certificate Policies\"},\"0.4.0.2042.1.2\":{d:\"normalisedCertificatePolicyPlus\",c:\"ETSI TS 102 042 Certificate Policies\"},\"0.4.0.2042.1.3\":{d:\"lightweightCertificatePolicy\",c:\"ETSI TS 102 042 Certificate Policies\"},\"0.4.0.2042.1.4\":{d:\"evCertificatePolicy\",c:\"ETSI TS 102 042 Certificate Policies\"},\"0.4.0.2042.1.5\":{d:\"evCertificatePolicyPlus\",c:\"ETSI TS 102 042 Certificate Policies\"},\"0.4.0.2042.1.6\":{d:\"dvCertificatePolicy\",c:\"ETSI TS 102 042 Certificate Policies\"},\"0.4.0.2042.1.7\":{d:\"ovCertificatePolicy\",c:\"ETSI TS 102 042 Certificate Policies\"},\"0.4.0.194112.1.0\":{d:\"qcpNatural\",c:\"EU Qualified Certificate Policy\"},\"0.4.0.194112.1.1\":{d:\"qcpLegal\",c:\"EU Qualified Certificate Policy\"},\"0.4.0.194112.1.2\":{d:\"qcpNaturalQscd\",c:\"EU Qualified Certificate Policy\"},\"0.4.0.194112.1.3\":{d:\"qcpLegalQscd\",c:\"EU Qualified Certificate Policy\"},\"0.4.0.194112.1.4\":{d:\"qcpWeb\",c:\"EU Qualified Certificate Policy\"},\"0.4.0.194121.1.1\":{d:\"qcsSemanticsIdNatural\",c:\"EU Qualified Certificate Identifier\"},\"0.4.0.194121.1.2\":{d:\"qcsSemanticsIdLegal\",c:\"EU Qualified Certificate Identifier\"},\"0.4.0.194121.1.3\":{d:\"qcsSemanticsIdeIDASNatural\",c:\"EU Qualified Certificate Identifier\"},\"0.4.0.194121.1.4\":{d:\"qcsSemanticsIdeIDASLegal\",c:\"EU Qualified Certificate Identifier\"},\"0.9.2342.19200300.100.1.1\":{d:\"userID\",c:\"Some oddball X.500 attribute collection\"},\"0.9.2342.19200300.100.1.3\":{d:\"rfc822Mailbox\",c:\"Some oddball X.500 attribute collection\"},\"0.9.2342.19200300.100.1.25\":{d:\"domainComponent\",c:\"Men are from Mars, this OID is from Pluto\"},\"1.0.10118.3.0.49\":{d:\"ripemd160\",c:\"ISO 10118-3 hash function\"},\"1.0.10118.3.0.50\":{d:\"ripemd128\",c:\"ISO 10118-3 hash function\"},\"1.0.10118.3.0.55\":{d:\"whirlpool\",c:\"ISO 10118-3 hash function\"},\"1.0.18033.2\":{d:\"iso18033-2\",c:\"ISO 18033-2\"},\"1.0.18033.2.2\":{d:\"kem\",c:\"ISO 18033-2 algorithms\"},\"1.0.18033.2.2.4\":{d:\"kemRSA\",c:\"ISO 18033-2 KEM algorithms\"},\"1.2.36.1.3.1.1.1\":{d:\"qgpki\",c:\"Queensland Government PKI\"},\"1.2.36.1.3.1.1.1.1\":{d:\"qgpkiPolicies\",c:\"QGPKI policies\"},\"1.2.36.1.3.1.1.1.1.1\":{d:\"qgpkiMedIntermedCA\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.1.1\":{d:\"qgpkiMedIntermedIndividual\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.1.2\":{d:\"qgpkiMedIntermedDeviceControl\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.1.3\":{d:\"qgpkiMedIntermedDevice\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.1.4\":{d:\"qgpkiMedIntermedAuthorisedParty\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.1.5\":{d:\"qgpkiMedIntermedDeviceSystem\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2\":{d:\"qgpkiMedIssuingCA\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2.1\":{d:\"qgpkiMedIssuingIndividual\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2.2\":{d:\"qgpkiMedIssuingDeviceControl\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2.3\":{d:\"qgpkiMedIssuingDevice\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2.4\":{d:\"qgpkiMedIssuingAuthorisedParty\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2.5\":{d:\"qgpkiMedIssuingClientAuth\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2.6\":{d:\"qgpkiMedIssuingServerAuth\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2.7\":{d:\"qgpkiMedIssuingDataProt\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.2.8\":{d:\"qgpkiMedIssuingTokenAuth\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.3\":{d:\"qgpkiBasicIntermedCA\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.3.1\":{d:\"qgpkiBasicIntermedDeviceSystem\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.4\":{d:\"qgpkiBasicIssuingCA\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.4.1\":{d:\"qgpkiBasicIssuingClientAuth\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.4.2\":{d:\"qgpkiBasicIssuingServerAuth\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.1.4.3\":{d:\"qgpkiBasicIssuingDataSigning\",c:\"QGPKI policy\"},\"1.2.36.1.3.1.1.1.2\":{d:\"qgpkiAssuranceLevel\",c:\"QGPKI assurance level\"},\"1.2.36.1.3.1.1.1.2.1\":{d:\"qgpkiAssuranceRudimentary\",c:\"QGPKI assurance level\"},\"1.2.36.1.3.1.1.1.2.2\":{d:\"qgpkiAssuranceBasic\",c:\"QGPKI assurance level\"},\"1.2.36.1.3.1.1.1.2.3\":{d:\"qgpkiAssuranceMedium\",c:\"QGPKI assurance level\"},\"1.2.36.1.3.1.1.1.2.4\":{d:\"qgpkiAssuranceHigh\",c:\"QGPKI assurance level\"},\"1.2.36.1.3.1.1.1.3\":{d:\"qgpkiCertFunction\",c:\"QGPKI policies\"},\"1.2.36.1.3.1.1.1.3.1\":{d:\"qgpkiFunctionIndividual\",c:\"QGPKI policies\"},\"1.2.36.1.3.1.1.1.3.2\":{d:\"qgpkiFunctionDevice\",c:\"QGPKI policies\"},\"1.2.36.1.3.1.1.1.3.3\":{d:\"qgpkiFunctionAuthorisedParty\",c:\"QGPKI policies\"},\"1.2.36.1.3.1.1.1.3.4\":{d:\"qgpkiFunctionDeviceControl\",c:\"QGPKI policies\"},\"1.2.36.1.3.1.2\":{d:\"qpspki\",c:\"Queensland Police PKI\"},\"1.2.36.1.3.1.2.1\":{d:\"qpspkiPolicies\",c:\"Queensland Police PKI\"},\"1.2.36.1.3.1.2.1.2\":{d:\"qpspkiPolicyBasic\",c:\"Queensland Police PKI\"},\"1.2.36.1.3.1.2.1.3\":{d:\"qpspkiPolicyMedium\",c:\"Queensland Police PKI\"},\"1.2.36.1.3.1.2.1.4\":{d:\"qpspkiPolicyHigh\",c:\"Queensland Police PKI\"},\"1.2.36.1.3.1.3.2\":{d:\"qtmrpki\",c:\"Queensland Transport PKI\"},\"1.2.36.1.3.1.3.2.1\":{d:\"qtmrpkiPolicies\",c:\"Queensland Transport PKI\"},\"1.2.36.1.3.1.3.2.2\":{d:\"qtmrpkiPurpose\",c:\"Queensland Transport PKI\"},\"1.2.36.1.3.1.3.2.2.1\":{d:\"qtmrpkiIndividual\",c:\"Queensland Transport PKI purpose\"},\"1.2.36.1.3.1.3.2.2.2\":{d:\"qtmrpkiDeviceControl\",c:\"Queensland Transport PKI purpose\"},\"1.2.36.1.3.1.3.2.2.3\":{d:\"qtmrpkiDevice\",c:\"Queensland Transport PKI purpose\"},\"1.2.36.1.3.1.3.2.2.4\":{d:\"qtmrpkiAuthorisedParty\",c:\"Queensland Transport PKI purpose\"},\"1.2.36.1.3.1.3.2.2.5\":{d:\"qtmrpkiDeviceSystem\",c:\"Queensland Transport PKI purpose\"},\"1.2.36.1.3.1.3.2.3\":{d:\"qtmrpkiDevice\",c:\"Queensland Transport PKI\"},\"1.2.36.1.3.1.3.2.3.1\":{d:\"qtmrpkiDriverLicense\",c:\"Queensland Transport PKI device\"},\"1.2.36.1.3.1.3.2.3.2\":{d:\"qtmrpkiIndustryAuthority\",c:\"Queensland Transport PKI device\"},\"1.2.36.1.3.1.3.2.3.3\":{d:\"qtmrpkiMarineLicense\",c:\"Queensland Transport PKI device\"},\"1.2.36.1.3.1.3.2.3.4\":{d:\"qtmrpkiAdultProofOfAge\",c:\"Queensland Transport PKI device\"},\"1.2.36.1.3.1.3.2.3.5\":{d:\"qtmrpkiSam\",c:\"Queensland Transport PKI device\"},\"1.2.36.1.3.1.3.2.4\":{d:\"qtmrpkiAuthorisedParty\",c:\"Queensland Transport PKI\"},\"1.2.36.1.3.1.3.2.4.1\":{d:\"qtmrpkiTransportInspector\",c:\"Queensland Transport PKI authorised party\"},\"1.2.36.1.3.1.3.2.4.2\":{d:\"qtmrpkiPoliceOfficer\",c:\"Queensland Transport PKI authorised party\"},\"1.2.36.1.3.1.3.2.4.3\":{d:\"qtmrpkiSystem\",c:\"Queensland Transport PKI authorised party\"},\"1.2.36.1.3.1.3.2.4.4\":{d:\"qtmrpkiLiquorLicensingInspector\",c:\"Queensland Transport PKI authorised party\"},\"1.2.36.1.3.1.3.2.4.5\":{d:\"qtmrpkiMarineEnforcementOfficer\",c:\"Queensland Transport PKI authorised party\"},\"1.2.36.1.333.1\":{d:\"australianBusinessNumber\",c:\"Australian Government corporate taxpayer ID\"},\"1.2.36.68980861.1.1.2\":{d:\"signetPersonal\",c:\"Signet CA\"},\"1.2.36.68980861.1.1.3\":{d:\"signetBusiness\",c:\"Signet CA\"},\"1.2.36.68980861.1.1.4\":{d:\"signetLegal\",c:\"Signet CA\"},\"1.2.36.68980861.1.1.10\":{d:\"signetPilot\",c:\"Signet CA\"},\"1.2.36.68980861.1.1.11\":{d:\"signetIntraNet\",c:\"Signet CA\"},\"1.2.36.68980861.1.1.20\":{d:\"signetPolicy\",c:\"Signet CA\"},\"1.2.36.75878867.1.100.1.1\":{d:\"certificatesAustraliaPolicy\",c:\"Certificates Australia CA\"},\"1.2.112.0.2.0.34.101.45.2.1\":{d:\"bignPubkey\",c:\"Belarus STB 34.101.45\"},\"1.2.112.0.2.0.34.101.45.3.1\":{d:\"bignParamB1\",c:\"Belarus STB 34.101.45\"},\"1.2.112.0.2.0.34.101.45.3.2\":{d:\"bignParamB2\",c:\"Belarus STB 34.101.45\"},\"1.2.112.0.2.0.34.101.45.3.3\":{d:\"bignParamB3\",c:\"Belarus STB 34.101.45\"},\"1.2.112.0.2.0.34.101.45.11\":{d:\"bignWithHSpec\",c:\"Belarus STB 34.101.45\"},\"1.2.112.0.2.0.34.101.45.12\":{d:\"bignWithHBelt\",c:\"Belarus STB 34.101.45\"},\"1.2.156.10197.1\":{d:\"gmtCryptographicAlgorithm\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.100\":{d:\"gmtBlockCipher\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.102\":{d:\"sm1Cipher\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.103\":{d:\"ssf33Cipher\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.104\":{d:\"sm4Cipher\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.200\":{d:\"gmtStreamCipher\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.201\":{d:\"zucCipher\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.300\":{d:\"gmtPublicKeyCryptography\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.301\":{d:\"sm2ECC\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.301.1\":{d:\"sm2-1DigitalSignature\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.301.2\":{d:\"sm2-2KeyExchange\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.301.3\":{d:\"sm2-3PublicKeyEncryption\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.302\":{d:\"gmtSM9IBE\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.302.1\":{d:\"sm9-1DigitalSignature\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.302.2\":{d:\"sm9-2KeyExchange\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.302.3\":{d:\"sm9-3PublicKeyEncryption\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.400\":{d:\"gmtHashAlgorithm\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.401\":{d:\"sm3Hash\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.401.1\":{d:\"sm3HashWithoutKey\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.401.2\":{d:\"sm3HashWithKey\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.500\":{d:\"gmtDigestSigning\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.501\":{d:\"sm2withSM3\",c:\"China GM Standards Committee\"},\"1.2.156.10197.1.504\":{d:\"rsaWithSM3\",c:\"China GM Standards Committee\"},\"1.2.156.10197.4.3\":{d:\"gmtCertificateAuthority\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6\":{d:\"gmtStandardClass\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1\":{d:\"gmtFoundationClass\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.1\":{d:\"gmtAlgorithmClass\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.1.1\":{d:\"zucStandard\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.1.2\":{d:\"sm4Standard\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.1.3\":{d:\"sm2Standard\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.1.4\":{d:\"sm3Standard\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.2\":{d:\"gmtIDClass\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.2.1\":{d:\"gmtCryptoID\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.3\":{d:\"gmtOperationModes\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.4\":{d:\"gmtSecurityMechanism\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.4.1\":{d:\"gmtSM2Specification\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.1.4.2\":{d:\"gmtSM2CryptographicMessageSyntax\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.2\":{d:\"gmtDeviceClass\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.3\":{d:\"gmtServiceClass\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.4\":{d:\"gmtInfrastructure\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.5\":{d:\"gmtTestingClass\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.5.1\":{d:\"gmtRandomTestingClass\",c:\"China GM Standards Committee\"},\"1.2.156.10197.6.6\":{d:\"gmtManagementClass\",c:\"China GM Standards Committee\"},\"1.2.392.200011.61.1.1.1\":{d:\"mitsubishiSecurityAlgorithm\",c:\"Mitsubishi security algorithm\"},\"1.2.392.200011.61.1.1.1.1\":{d:\"misty1-cbc\",c:\"Mitsubishi security algorithm\"},\"1.2.410.200004.1\":{d:\"kisaAlgorithm\",c:\"KISA algorithm\"},\"1.2.410.200004.1.1\":{d:\"kcdsa\",c:\"Korean DSA\"},\"1.2.410.200004.1.2\":{d:\"has160\",c:\"Korean hash algorithm\"},\"1.2.410.200004.1.3\":{d:\"seedECB\",c:\"Korean SEED algorithm, ECB mode\"},\"1.2.410.200004.1.4\":{d:\"seedCBC\",c:\"Korean SEED algorithm, CBC mode\"},\"1.2.410.200004.1.5\":{d:\"seedOFB\",c:\"Korean SEED algorithm, OFB mode\"},\"1.2.410.200004.1.6\":{d:\"seedCFB\",c:\"Korean SEED algorithm, CFB mode\"},\"1.2.410.200004.1.7\":{d:\"seedMAC\",c:\"Korean SEED algorithm, MAC mode\"},\"1.2.410.200004.1.8\":{d:\"kcdsaWithHAS160\",c:\"Korean signature algorithm\"},\"1.2.410.200004.1.9\":{d:\"kcdsaWithSHA1\",c:\"Korean signature algorithm\"},\"1.2.410.200004.1.10\":{d:\"pbeWithHAS160AndSEED-ECB\",c:\"Korean SEED algorithm, PBE key derivation\"},\"1.2.410.200004.1.11\":{d:\"pbeWithHAS160AndSEED-CBC\",c:\"Korean SEED algorithm, PBE key derivation\"},\"1.2.410.200004.1.12\":{d:\"pbeWithHAS160AndSEED-CFB\",c:\"Korean SEED algorithm, PBE key derivation\"},\"1.2.410.200004.1.13\":{d:\"pbeWithHAS160AndSEED-OFB\",c:\"Korean SEED algorithm, PBE key derivation\"},\"1.2.410.200004.1.14\":{d:\"pbeWithSHA1AndSEED-ECB\",c:\"Korean SEED algorithm, PBE key derivation\"},\"1.2.410.200004.1.15\":{d:\"pbeWithSHA1AndSEED-CBC\",c:\"Korean SEED algorithm, PBE key derivation\"},\"1.2.410.200004.1.16\":{d:\"pbeWithSHA1AndSEED-CFB\",c:\"Korean SEED algorithm, PBE key derivation\"},\"1.2.410.200004.1.17\":{d:\"pbeWithSHA1AndSEED-OFB\",c:\"Korean SEED algorithm, PBE key derivation\"},\"1.2.410.200004.1.20\":{d:\"rsaWithHAS160\",c:\"Korean signature algorithm\"},\"1.2.410.200004.1.21\":{d:\"kcdsa1\",c:\"Korean DSA\"},\"1.2.410.200004.2\":{d:\"npkiCP\",c:\"KISA NPKI certificate policies\"},\"1.2.410.200004.2.1\":{d:\"npkiSignaturePolicy\",c:\"KISA NPKI certificate policies\"},\"1.2.410.200004.3\":{d:\"npkiKP\",c:\"KISA NPKI key usage\"},\"1.2.410.200004.4\":{d:\"npkiAT\",c:\"KISA NPKI attribute\"},\"1.2.410.200004.5\":{d:\"npkiLCA\",c:\"KISA NPKI licensed CA\"},\"1.2.410.200004.5.1\":{d:\"npkiSignKorea\",c:\"KISA NPKI licensed CA\"},\"1.2.410.200004.5.2\":{d:\"npkiSignGate\",c:\"KISA NPKI licensed CA\"},\"1.2.410.200004.5.3\":{d:\"npkiNcaSign\",c:\"KISA NPKI licensed CA\"},\"1.2.410.200004.6\":{d:\"npkiON\",c:\"KISA NPKI otherName\"},\"1.2.410.200004.7\":{d:\"npkiAPP\",c:\"KISA NPKI application\"},\"1.2.410.200004.7.1\":{d:\"npkiSMIME\",c:\"KISA NPKI application\"},\"1.2.410.200004.7.1.1\":{d:\"npkiSMIMEAlgo\",c:\"KISA NPKI application\"},\"1.2.410.200004.7.1.1.1\":{d:\"npkiCmsSEEDWrap\",c:\"KISA NPKI application\"},\"1.2.410.200004.10\":{d:\"npki\",c:\"KISA NPKI\"},\"1.2.410.200004.10.1\":{d:\"npkiAttribute\",c:\"KISA NPKI attribute\"},\"1.2.410.200004.10.1.1\":{d:\"npkiIdentifyData\",c:\"KISA NPKI attribute\"},\"1.2.410.200004.10.1.1.1\":{d:\"npkiVID\",c:\"KISA NPKI attribute\"},\"1.2.410.200004.10.1.1.2\":{d:\"npkiEncryptedVID\",c:\"KISA NPKI attribute\"},\"1.2.410.200004.10.1.1.3\":{d:\"npkiRandomNum\",c:\"KISA NPKI attribute\"},\"1.2.410.200004.10.1.1.4\":{d:\"npkiVID\",c:\"KISA NPKI attribute\"},\"1.2.410.200046.1.1\":{d:\"aria1AlgorithmModes\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.1\":{d:\"aria128-ecb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.2\":{d:\"aria128-cbc\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.3\":{d:\"aria128-cfb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.4\":{d:\"aria128-ofb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.5\":{d:\"aria128-ctr\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.6\":{d:\"aria192-ecb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.7\":{d:\"aria192-cbc\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.8\":{d:\"aria192-cfb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.9\":{d:\"aria192-ofb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.10\":{d:\"aria192-ctr\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.11\":{d:\"aria256-ecb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.12\":{d:\"aria256-cbc\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.13\":{d:\"aria256-cfb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.14\":{d:\"aria256-ofb\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.15\":{d:\"aria256-ctr\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.21\":{d:\"aria128-cmac\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.22\":{d:\"aria192-cmac\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.23\":{d:\"aria256-cmac\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.31\":{d:\"aria128-ocb2\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.32\":{d:\"aria192-ocb2\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.33\":{d:\"aria256-ocb2\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.34\":{d:\"aria128-gcm\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.35\":{d:\"aria192-gcm\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.36\":{d:\"aria256-gcm\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.37\":{d:\"aria128-ccm\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.38\":{d:\"aria192-ccm\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.39\":{d:\"aria256-ccm\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.40\":{d:\"aria128-keywrap\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.41\":{d:\"aria192-keywrap\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.42\":{d:\"aria256-keywrap\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.43\":{d:\"aria128-keywrapWithPad\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.44\":{d:\"aria192-keywrapWithPad\",c:\"ARIA algorithm modes\"},\"1.2.410.200046.1.1.45\":{d:\"aria256-keywrapWithPad\",c:\"ARIA algorithm modes\"},\"1.2.643.2.2.3\":{d:\"gostSignature\",c:\"GOST R 34.10-2001 + GOST R 34.11-94 signature\"},\"1.2.643.2.2.4\":{d:\"gost94Signature\",c:\"GOST R 34.10-94 + GOST R 34.11-94 signature. Obsoleted by GOST R 34.10-2001\",w:true},\"1.2.643.2.2.19\":{d:\"gostPublicKey\",c:\"GOST R 34.10-2001 (ECC) public key\"},\"1.2.643.2.2.20\":{d:\"gost94PublicKey\",c:\"GOST R 34.10-94 public key. Obsoleted by GOST R 34.10-2001\",w:true},\"1.2.643.2.2.21\":{d:\"gostCipher\",c:\"GOST 28147-89 (symmetric key block cipher)\"},\"1.2.643.2.2.31.0\":{d:\"testCipherParams\",c:\"Test params for GOST 28147-89\"},\"1.2.643.2.2.31.1\":{d:\"cryptoProCipherA\",c:\"CryptoPro params A (default, variant 'Verba-O') for GOST 28147-89\"},\"1.2.643.2.2.31.2\":{d:\"cryptoProCipherB\",c:\"CryptoPro params B (variant 1) for GOST 28147-89\"},\"1.2.643.2.2.31.3\":{d:\"cryptoProCipherC\",c:\"CryptoPro params C (variant 2) for GOST 28147-89\"},\"1.2.643.2.2.31.4\":{d:\"cryptoProCipherD\",c:\"CryptoPro params D (variant 3) for GOST 28147-89\"},\"1.2.643.2.2.31.5\":{d:\"oscar11Cipher\",c:\"Oscar-1.1 params for GOST 28147-89\"},\"1.2.643.2.2.31.6\":{d:\"oscar10Cipher\",c:\"Oscar-1.0 params for GOST 28147-89\"},\"1.2.643.2.2.31.7\":{d:\"ric1Cipher\",c:\"RIC-1 params for GOST 28147-89\"},\"1.2.643.2.2.31.12\":{d:\"tc26CipherA\",c:\"TC26 params 2 for GOST 28147-89\"},\"1.2.643.2.2.31.13\":{d:\"tc26CipherB\",c:\"TC26 params 1 for GOST 28147-89\"},\"1.2.643.2.2.31.14\":{d:\"tc26CipherC\",c:\"TC26 params 3 for GOST 28147-89\"},\"1.2.643.2.2.31.15\":{d:\"tc26CipherD\",c:\"TC26 params 4 for GOST 28147-89\"},\"1.2.643.2.2.31.16\":{d:\"tc26CipherE\",c:\"TC26 params 5 for GOST 28147-89\"},\"1.2.643.2.2.31.17\":{d:\"tc26CipherF\",c:\"TC26 params 6 for GOST 28147-89\"},\"1.2.643.7.1.2.5.1.1\":{d:\"tc26CipherZ\",c:\"TC26 params Z for GOST 28147-89\"},\"1.2.643.2.2.9\":{d:\"gostDigest\",c:\"GOST R 34.11-94 digest\"},\"1.2.643.2.2.30.0\":{d:\"testDigestParams\",c:\"Test params for GOST R 34.11-94\"},\"1.2.643.2.2.30.1\":{d:\"cryptoProDigestA\",c:\"CryptoPro digest params A (default, variant 'Verba-O') for GOST R 34.11-94\"},\"1.2.643.2.2.30.2\":{d:\"cryptoProDigestB\",c:\"CryptoPro digest params B (variant 1) for GOST R 34.11-94\"},\"1.2.643.2.2.30.3\":{d:\"cryptoProDigestC\",c:\"CryptoPro digest params C (variant 2) for GOST R 34.11-94\"},\"1.2.643.2.2.30.4\":{d:\"cryptoProDigestD\",c:\"CryptoPro digest params D (variant 3) for GOST R 34.11-94\"},\"1.2.643.2.2.32.2\":{d:\"cryptoPro94SignA\",c:\"CryptoPro sign params A (default, variant 'Verba-O') for GOST R 34.10-94\"},\"1.2.643.2.2.32.3\":{d:\"cryptoPro94SignB\",c:\"CryptoPro sign params B (variant 1) for GOST R 34.10-94\"},\"1.2.643.2.2.32.4\":{d:\"cryptoPro94SignC\",c:\"CryptoPro sign params C (variant 2) for GOST R 34.10-94\"},\"1.2.643.2.2.32.5\":{d:\"cryptoPro94SignD\",c:\"CryptoPro sign params D (variant 3) for GOST R 34.10-94\"},\"1.2.643.2.2.33.1\":{d:\"cryptoPro94SignXA\",c:\"CryptoPro sign params XA (variant 1) for GOST R 34.10-94\"},\"1.2.643.2.2.33.2\":{d:\"cryptoPro94SignXB\",c:\"CryptoPro sign params XB (variant 2) for GOST R 34.10-94\"},\"1.2.643.2.2.33.3\":{d:\"cryptoPro94SignXC\",c:\"CryptoPro sign params XC (variant 3) for GOST R 34.10-94\"},\"1.2.643.2.2.35.0\":{d:\"testSignParams\",c:\"Test elliptic curve for GOST R 34.10-2001\"},\"1.2.643.2.2.35.1\":{d:\"cryptoProSignA\",c:\"CryptoPro ell.curve A for GOST R 34.10-2001\"},\"1.2.643.2.2.35.2\":{d:\"cryptoProSignB\",c:\"CryptoPro ell.curve B for GOST R 34.10-2001\"},\"1.2.643.2.2.35.3\":{d:\"cryptoProSignC\",c:\"CryptoPro ell.curve C for GOST R 34.10-2001\"},\"1.2.643.2.2.36.0\":{d:\"cryptoProSignXA\",c:\"CryptoPro ell.curve XA for GOST R 34.10-2001\"},\"1.2.643.2.2.36.1\":{d:\"cryptoProSignXB\",c:\"CryptoPro ell.curve XB for GOST R 34.10-2001\"},\"1.2.643.7.1.2.1.1.1\":{d:\"cryptoPro2012Sign256A\",c:\"CryptoPro ell.curve A for GOST R 34.10-2012 256 bit\"},\"1.2.643.7.1.2.1.2.1\":{d:\"cryptoPro2012Sign512A\",c:\"CryptoPro ell.curve A (default) for GOST R 34.10-2012 512 bit\"},\"1.2.643.7.1.2.1.2.2\":{d:\"cryptoPro2012Sign512B\",c:\"CryptoPro ell.curve B for GOST R 34.10-2012 512 bit\"},\"1.2.643.7.1.2.1.2.3\":{d:\"cryptoPro2012Sign512C\",c:\"CryptoPro ell.curve C for GOST R 34.10-2012 512 bit\"},\"1.2.643.2.2.14.0\":{d:\"nullMeshing\",c:\"Do not mesh state of GOST 28147-89 cipher\"},\"1.2.643.2.2.14.1\":{d:\"cryptoProMeshing\",c:\"CryptoPro meshing of state of GOST 28147-89 cipher\"},\"1.2.643.2.2.10\":{d:\"hmacGost\",c:\"HMAC with GOST R 34.11-94\"},\"1.2.643.2.2.13.0\":{d:\"gostWrap\",c:\"Wrap key using GOST 28147-89 key\"},\"1.2.643.2.2.13.1\":{d:\"cryptoProWrap\",c:\"Wrap key using diversified GOST 28147-89 key\"},\"1.2.643.2.2.96\":{d:\"cryptoProECDHWrap\",c:\"Wrap key using ECC DH on GOST R 34.10-2001 keys (VKO)\"},\"1.2.643.7.1.1.1.1\":{d:\"gost2012PublicKey256\",c:\"GOST R 34.10-2012 256 bit public key\"},\"1.2.643.7.1.1.1.2\":{d:\"gost2012PublicKey512\",c:\"GOST R 34.10-2012 512 bit public key\"},\"1.2.643.7.1.1.2.2\":{d:\"gost2012Digest256\",c:\"GOST R 34.11-2012 256 bit digest\"},\"1.2.643.7.1.1.2.3\":{d:\"gost2012Digest512\",c:\"GOST R 34.11-2012 512 bit digest\"},\"1.2.643.7.1.1.3.2\":{d:\"gost2012Signature256\",c:\"GOST R 34.10-2012 256 bit signature\"},\"1.2.643.7.1.1.3.3\":{d:\"gost2012Signature512\",c:\"GOST R 34.10-2012 512 bit signature\"},\"1.2.643.7.1.1.6.1\":{d:\"cryptoProECDH256\",c:\"CryptoPro ECC DH algorithm for GOST R 34.10-2012 256 bit key\"},\"1.2.643.7.1.1.6.2\":{d:\"cryptoProECDH512\",c:\"CryptoPro ECC DH algorithm for GOST R 34.10-2012 512 bit key\"},\"1.2.643.100.113.1\":{d:\"cryptoProClassSignToolKC1\",c:\"CryptoPro GOST\"},\"1.2.643.100.113.2\":{d:\"cryptoProClassSignToolKC2\",c:\"CryptoPro GOST\"},\"1.2.643.100.113.3\":{d:\"cryptoProClassSignToolKC3\",c:\"CryptoPro GOST\"},\"1.2.643.100.113.4\":{d:\"cryptoProClassSignToolKB1\",c:\"CryptoPro GOST\"},\"1.2.643.100.113.5\":{d:\"cryptoProClassSignToolKB2\",c:\"CryptoPro GOST\"},\"1.2.643.100.113.6\":{d:\"cryptoProClassSignToolKA1\",c:\"CryptoPro GOST\"},\"1.2.752.34.1\":{d:\"seis-cp\",c:\"SEIS Project\"},\"1.2.752.34.1.1\":{d:\"SEIS high-assurance policyIdentifier\",c:\"SEIS Project certificate policies\"},\"1.2.752.34.1.2\":{d:\"SEIS GAK policyIdentifier\",c:\"SEIS Project certificate policies\"},\"1.2.752.34.2\":{d:\"SEIS pe\",c:\"SEIS Project\"},\"1.2.752.34.3\":{d:\"SEIS at\",c:\"SEIS Project\"},\"1.2.752.34.3.1\":{d:\"SEIS at-personalIdentifier\",c:\"SEIS Project attribute\"},\"1.2.840.10040.1\":{d:\"module\",c:\"ANSI X9.57\"},\"1.2.840.10040.1.1\":{d:\"x9f1-cert-mgmt\",c:\"ANSI X9.57 module\"},\"1.2.840.10040.2\":{d:\"holdinstruction\",c:\"ANSI X9.57\"},\"1.2.840.10040.2.1\":{d:\"holdinstruction-none\",c:\"ANSI X9.57 hold instruction\"},\"1.2.840.10040.2.2\":{d:\"callissuer\",c:\"ANSI X9.57 hold instruction\"},\"1.2.840.10040.2.3\":{d:\"reject\",c:\"ANSI X9.57 hold instruction\"},\"1.2.840.10040.2.4\":{d:\"pickupToken\",c:\"ANSI X9.57 hold instruction\"},\"1.2.840.10040.3\":{d:\"attribute\",c:\"ANSI X9.57\"},\"1.2.840.10040.3.1\":{d:\"countersignature\",c:\"ANSI X9.57 attribute\"},\"1.2.840.10040.3.2\":{d:\"attribute-cert\",c:\"ANSI X9.57 attribute\"},\"1.2.840.10040.4\":{d:\"algorithm\",c:\"ANSI X9.57\"},\"1.2.840.10040.4.1\":{d:\"dsa\",c:\"ANSI X9.57 algorithm\"},\"1.2.840.10040.4.2\":{d:\"dsa-match\",c:\"ANSI X9.57 algorithm\"},\"1.2.840.10040.4.3\":{d:\"dsaWithSha1\",c:\"ANSI X9.57 algorithm\"},\"1.2.840.10045.1\":{d:\"fieldType\",c:\"ANSI X9.62. This OID is also assigned as ecdsa-with-SHA1\"},\"1.2.840.10045.1.1\":{d:\"prime-field\",c:\"ANSI X9.62 field type\"},\"1.2.840.10045.1.2\":{d:\"characteristic-two-field\",c:\"ANSI X9.62 field type\"},\"1.2.840.10045.1.2.3\":{d:\"characteristic-two-basis\",c:\"ANSI X9.62 field type\"},\"1.2.840.10045.1.2.3.1\":{d:\"onBasis\",c:\"ANSI X9.62 field basis\"},\"1.2.840.10045.1.2.3.2\":{d:\"tpBasis\",c:\"ANSI X9.62 field basis\"},\"1.2.840.10045.1.2.3.3\":{d:\"ppBasis\",c:\"ANSI X9.62 field basis\"},\"1.2.840.10045.2\":{d:\"publicKeyType\",c:\"ANSI X9.62\"},\"1.2.840.10045.2.1\":{d:\"ecPublicKey\",c:\"ANSI X9.62 public key type\"},\"1.2.840.10045.3.0.1\":{d:\"c2pnb163v1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.2\":{d:\"c2pnb163v2\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.3\":{d:\"c2pnb163v3\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.5\":{d:\"c2tnb191v1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.6\":{d:\"c2tnb191v2\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.7\":{d:\"c2tnb191v3\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.10\":{d:\"c2pnb208w1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.11\":{d:\"c2tnb239v1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.12\":{d:\"c2tnb239v2\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.13\":{d:\"c2tnb239v3\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.16\":{d:\"c2pnb272w1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.18\":{d:\"c2tnb359v1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.19\":{d:\"c2pnb368w1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.0.20\":{d:\"c2tnb431r1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.1.1\":{d:\"prime192v1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.1.2\":{d:\"prime192v2\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.1.3\":{d:\"prime192v3\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.1.4\":{d:\"prime239v1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.1.5\":{d:\"prime239v2\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.1.6\":{d:\"prime239v3\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.3.1.7\":{d:\"prime256v1\",c:\"ANSI X9.62 named elliptic curve\"},\"1.2.840.10045.4.1\":{d:\"ecdsaWithSHA1\",c:\"ANSI X9.62 ECDSA algorithm with SHA1\"},\"1.2.840.10045.4.2\":{d:\"ecdsaWithRecommended\",c:\"ANSI X9.62 ECDSA algorithm with Recommended\"},\"1.2.840.10045.4.3\":{d:\"ecdsaWithSpecified\",c:\"ANSI X9.62 ECDSA algorithm with Specified\"},\"1.2.840.10045.4.3.1\":{d:\"ecdsaWithSHA224\",c:\"ANSI X9.62 ECDSA algorithm with SHA224\"},\"1.2.840.10045.4.3.2\":{d:\"ecdsaWithSHA256\",c:\"ANSI X9.62 ECDSA algorithm with SHA256\"},\"1.2.840.10045.4.3.3\":{d:\"ecdsaWithSHA384\",c:\"ANSI X9.62 ECDSA algorithm with SHA384\"},\"1.2.840.10045.4.3.4\":{d:\"ecdsaWithSHA512\",c:\"ANSI X9.62 ECDSA algorithm with SHA512\"},\"1.2.840.10046.1\":{d:\"fieldType\",c:\"ANSI X9.42\"},\"1.2.840.10046.1.1\":{d:\"gf-prime\",c:\"ANSI X9.42 field type\"},\"1.2.840.10046.2\":{d:\"numberType\",c:\"ANSI X9.42\"},\"1.2.840.10046.2.1\":{d:\"dhPublicKey\",c:\"ANSI X9.42 number type\"},\"1.2.840.10046.3\":{d:\"scheme\",c:\"ANSI X9.42\"},\"1.2.840.10046.3.1\":{d:\"dhStatic\",c:\"ANSI X9.42 scheme\"},\"1.2.840.10046.3.2\":{d:\"dhEphem\",c:\"ANSI X9.42 scheme\"},\"1.2.840.10046.3.3\":{d:\"dhHybrid1\",c:\"ANSI X9.42 scheme\"},\"1.2.840.10046.3.4\":{d:\"dhHybrid2\",c:\"ANSI X9.42 scheme\"},\"1.2.840.10046.3.5\":{d:\"mqv2\",c:\"ANSI X9.42 scheme\"},\"1.2.840.10046.3.6\":{d:\"mqv1\",c:\"ANSI X9.42 scheme\"},\"1.2.840.10065.2.2\":{d:\"?\",c:\"ASTM 31.20\"},\"1.2.840.10065.2.3\":{d:\"healthcareLicense\",c:\"ASTM 31.20\"},\"1.2.840.10065.2.3.1.1\":{d:\"license?\",c:\"ASTM 31.20 healthcare license type\"},\"1.2.840.10070\":{d:\"iec62351\",c:\"IEC 62351\"},\"1.2.840.10070.8\":{d:\"iec62351_8\",c:\"IEC 62351-8\"},\"1.2.840.10070.8.1\":{d:\"iecUserRoles\",c:\"IEC 62351-8\"},\"1.2.840.113533.7\":{d:\"nsn\",c:\"\"},\"1.2.840.113533.7.65\":{d:\"nsn-ce\",c:\"\"},\"1.2.840.113533.7.65.0\":{d:\"entrustVersInfo\",c:\"Nortel Secure Networks ce\"},\"1.2.840.113533.7.66\":{d:\"nsn-alg\",c:\"\"},\"1.2.840.113533.7.66.3\":{d:\"cast3CBC\",c:\"Nortel Secure Networks alg\"},\"1.2.840.113533.7.66.10\":{d:\"cast5CBC\",c:\"Nortel Secure Networks alg\"},\"1.2.840.113533.7.66.11\":{d:\"cast5MAC\",c:\"Nortel Secure Networks alg\"},\"1.2.840.113533.7.66.12\":{d:\"pbeWithMD5AndCAST5-CBC\",c:\"Nortel Secure Networks alg\"},\"1.2.840.113533.7.66.13\":{d:\"passwordBasedMac\",c:\"Nortel Secure Networks alg\"},\"1.2.840.113533.7.67\":{d:\"nsn-oc\",c:\"\"},\"1.2.840.113533.7.67.0\":{d:\"entrustUser\",c:\"Nortel Secure Networks oc\"},\"1.2.840.113533.7.68\":{d:\"nsn-at\",c:\"\"},\"1.2.840.113533.7.68.0\":{d:\"entrustCAInfo\",c:\"Nortel Secure Networks at\"},\"1.2.840.113533.7.68.10\":{d:\"attributeCertificate\",c:\"Nortel Secure Networks at\"},\"1.2.840.113549.1.1\":{d:\"pkcs-1\",c:\"\"},\"1.2.840.113549.1.1.1\":{d:\"rsaEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.2\":{d:\"md2WithRSAEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.3\":{d:\"md4WithRSAEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.4\":{d:\"md5WithRSAEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.5\":{d:\"sha1WithRSAEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.7\":{d:\"rsaOAEP\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.8\":{d:\"pkcs1-MGF\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.9\":{d:\"rsaOAEP-pSpecified\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.10\":{d:\"rsaPSS\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.11\":{d:\"sha256WithRSAEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.12\":{d:\"sha384WithRSAEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.13\":{d:\"sha512WithRSAEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.14\":{d:\"sha224WithRSAEncryption\",c:\"PKCS #1\"},\"1.2.840.113549.1.1.6\":{d:\"rsaOAEPEncryptionSET\",c:\"PKCS #1. This OID may also be assigned as ripemd160WithRSAEncryption\"},\"1.2.840.113549.1.2\":{d:\"bsafeRsaEncr\",c:\"Obsolete BSAFE OID\",w:true},\"1.2.840.113549.1.3\":{d:\"pkcs-3\",c:\"\"},\"1.2.840.113549.1.3.1\":{d:\"dhKeyAgreement\",c:\"PKCS #3\"},\"1.2.840.113549.1.5\":{d:\"pkcs-5\",c:\"\"},\"1.2.840.113549.1.5.1\":{d:\"pbeWithMD2AndDES-CBC\",c:\"PKCS #5\"},\"1.2.840.113549.1.5.3\":{d:\"pbeWithMD5AndDES-CBC\",c:\"PKCS #5\"},\"1.2.840.113549.1.5.4\":{d:\"pbeWithMD2AndRC2-CBC\",c:\"PKCS #5\"},\"1.2.840.113549.1.5.6\":{d:\"pbeWithMD5AndRC2-CBC\",c:\"PKCS #5\"},\"1.2.840.113549.1.5.9\":{d:\"pbeWithMD5AndXOR\",c:\"PKCS #5, used in BSAFE only\",w:true},\"1.2.840.113549.1.5.10\":{d:\"pbeWithSHAAndDES-CBC\",c:\"PKCS #5\"},\"1.2.840.113549.1.5.12\":{d:\"pkcs5PBKDF2\",c:\"PKCS #5 v2.0\"},\"1.2.840.113549.1.5.13\":{d:\"pkcs5PBES2\",c:\"PKCS #5 v2.0\"},\"1.2.840.113549.1.5.14\":{d:\"pkcs5PBMAC1\",c:\"PKCS #5 v2.0\"},\"1.2.840.113549.1.7\":{d:\"pkcs-7\",c:\"\"},\"1.2.840.113549.1.7.1\":{d:\"data\",c:\"PKCS #7\"},\"1.2.840.113549.1.7.2\":{d:\"signedData\",c:\"PKCS #7\"},\"1.2.840.113549.1.7.3\":{d:\"envelopedData\",c:\"PKCS #7\"},\"1.2.840.113549.1.7.4\":{d:\"signedAndEnvelopedData\",c:\"PKCS #7\"},\"1.2.840.113549.1.7.5\":{d:\"digestedData\",c:\"PKCS #7\"},\"1.2.840.113549.1.7.6\":{d:\"encryptedData\",c:\"PKCS #7\"},\"1.2.840.113549.1.7.7\":{d:\"dataWithAttributes\",c:\"PKCS #7 experimental\",w:true},\"1.2.840.113549.1.7.8\":{d:\"encryptedPrivateKeyInfo\",c:\"PKCS #7 experimental\",w:true},\"1.2.840.113549.1.9\":{d:\"pkcs-9\",c:\"\"},\"1.2.840.113549.1.9.1\":{d:\"emailAddress\",c:\"PKCS #9. Deprecated, use an altName extension instead\"},\"1.2.840.113549.1.9.2\":{d:\"unstructuredName\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.3\":{d:\"contentType\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.4\":{d:\"messageDigest\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.5\":{d:\"signingTime\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.6\":{d:\"countersignature\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.7\":{d:\"challengePassword\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.8\":{d:\"unstructuredAddress\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.9\":{d:\"extendedCertificateAttributes\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.10\":{d:\"issuerAndSerialNumber\",c:\"PKCS #9 experimental\",w:true},\"1.2.840.113549.1.9.11\":{d:\"passwordCheck\",c:\"PKCS #9 experimental\",w:true},\"1.2.840.113549.1.9.12\":{d:\"publicKey\",c:\"PKCS #9 experimental\",w:true},\"1.2.840.113549.1.9.13\":{d:\"signingDescription\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.14\":{d:\"extensionRequest\",c:\"PKCS #9 via CRMF\"},\"1.2.840.113549.1.9.15\":{d:\"sMIMECapabilities\",c:\"PKCS #9. This OID was formerly assigned as symmetricCapabilities, then reassigned as SMIMECapabilities, then renamed to the current name\"},\"1.2.840.113549.1.9.15.1\":{d:\"preferSignedData\",c:\"sMIMECapabilities\"},\"1.2.840.113549.1.9.15.2\":{d:\"canNotDecryptAny\",c:\"sMIMECapabilities\"},\"1.2.840.113549.1.9.15.3\":{d:\"receiptRequest\",c:\"sMIMECapabilities. Deprecated, use (1 2 840 113549 1 9 16 2 1) instead\",w:true},\"1.2.840.113549.1.9.15.4\":{d:\"receipt\",c:\"sMIMECapabilities. Deprecated, use (1 2 840 113549 1 9 16 1 1) instead\",w:true},\"1.2.840.113549.1.9.15.5\":{d:\"contentHints\",c:\"sMIMECapabilities. Deprecated, use (1 2 840 113549 1 9 16 2 4) instead\",w:true},\"1.2.840.113549.1.9.15.6\":{d:\"mlExpansionHistory\",c:\"sMIMECapabilities. Deprecated, use (1 2 840 113549 1 9 16 2 3) instead\",w:true},\"1.2.840.113549.1.9.16\":{d:\"id-sMIME\",c:\"PKCS #9\"},\"1.2.840.113549.1.9.16.0\":{d:\"id-mod\",c:\"id-sMIME\"},\"1.2.840.113549.1.9.16.0.1\":{d:\"id-mod-cms\",c:\"S/MIME Modules\"},\"1.2.840.113549.1.9.16.0.2\":{d:\"id-mod-ess\",c:\"S/MIME Modules\"},\"1.2.840.113549.1.9.16.0.3\":{d:\"id-mod-oid\",c:\"S/MIME Modules\"},\"1.2.840.113549.1.9.16.0.4\":{d:\"id-mod-msg-v3\",c:\"S/MIME Modules\"},\"1.2.840.113549.1.9.16.0.5\":{d:\"id-mod-ets-eSignature-88\",c:\"S/MIME Modules\"},\"1.2.840.113549.1.9.16.0.6\":{d:\"id-mod-ets-eSignature-97\",c:\"S/MIME Modules\"},\"1.2.840.113549.1.9.16.0.7\":{d:\"id-mod-ets-eSigPolicy-88\",c:\"S/MIME Modules\"},\"1.2.840.113549.1.9.16.0.8\":{d:\"id-mod-ets-eSigPolicy-88\",c:\"S/MIME Modules\"},\"1.2.840.113549.1.9.16.1\":{d:\"contentType\",c:\"S/MIME\"},\"1.2.840.113549.1.9.16.1.0\":{d:\"anyContentType\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.1\":{d:\"receipt\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.2\":{d:\"authData\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.3\":{d:\"publishCert\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.4\":{d:\"tSTInfo\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.5\":{d:\"tDTInfo\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.6\":{d:\"contentInfo\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.7\":{d:\"dVCSRequestData\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.8\":{d:\"dVCSResponseData\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.9\":{d:\"compressedData\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.10\":{d:\"scvpCertValRequest\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.11\":{d:\"scvpCertValResponse\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.12\":{d:\"scvpValPolRequest\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.13\":{d:\"scvpValPolResponse\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.14\":{d:\"attrCertEncAttrs\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.15\":{d:\"tSReq\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.16\":{d:\"firmwarePackage\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.17\":{d:\"firmwareLoadReceipt\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.18\":{d:\"firmwareLoadError\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.19\":{d:\"contentCollection\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.20\":{d:\"contentWithAttrs\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.21\":{d:\"encKeyWithID\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.22\":{d:\"encPEPSI\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.23\":{d:\"authEnvelopedData\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.24\":{d:\"routeOriginAttest\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.25\":{d:\"symmetricKeyPackage\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.26\":{d:\"rpkiManifest\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.27\":{d:\"asciiTextWithCRLF\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.28\":{d:\"xml\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.29\":{d:\"pdf\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.30\":{d:\"postscript\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.31\":{d:\"timestampedData\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.32\":{d:\"asAdjacencyAttest\",c:\"S/MIME Content Types\",w:true},\"1.2.840.113549.1.9.16.1.33\":{d:\"rpkiTrustAnchor\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.34\":{d:\"trustAnchorList\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.35\":{d:\"rpkiGhostbusters\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.36\":{d:\"resourceTaggedAttest\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.37\":{d:\"utf8TextWithCRLF\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.38\":{d:\"htmlWithCRLF\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.39\":{d:\"epub\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.40\":{d:\"animaJSONVoucher\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.41\":{d:\"mudType\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.42\":{d:\"sztpConveyedInfoXML\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.43\":{d:\"sztpConveyedInfoJSON\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.44\":{d:\"cbor\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.45\":{d:\"cborSequence\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.46\":{d:\"animaCBORVoucher\",c:\"S/MIME Content Types\",w:true},\"1.2.840.113549.1.9.16.1.47\":{d:\"geofeedCSVwithCRLF\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.48\":{d:\"rpkiSignedChecklist\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.1.49\":{d:\"rpkiASPA\",c:\"S/MIME Content Types\"},\"1.2.840.113549.1.9.16.2\":{d:\"authenticatedAttributes\",c:\"S/MIME\"},\"1.2.840.113549.1.9.16.2.1\":{d:\"receiptRequest\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.2\":{d:\"securityLabel\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.3\":{d:\"mlExpandHistory\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.4\":{d:\"contentHint\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.5\":{d:\"msgSigDigest\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.6\":{d:\"encapContentType\",c:\"S/MIME Authenticated Attributes. Obsolete\",w:true},\"1.2.840.113549.1.9.16.2.7\":{d:\"contentIdentifier\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.8\":{d:\"macValue\",c:\"S/MIME Authenticated Attributes. Obsolete\",w:true},\"1.2.840.113549.1.9.16.2.9\":{d:\"equivalentLabels\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.10\":{d:\"contentReference\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.11\":{d:\"encrypKeyPref\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.12\":{d:\"signingCertificate\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.13\":{d:\"smimeEncryptCerts\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.14\":{d:\"timeStampToken\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.15\":{d:\"sigPolicyId\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.16\":{d:\"commitmentType\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.17\":{d:\"signerLocation\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.18\":{d:\"signerAttr\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.19\":{d:\"otherSigCert\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.20\":{d:\"contentTimestamp\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.21\":{d:\"certificateRefs\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.22\":{d:\"revocationRefs\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.23\":{d:\"certValues\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.24\":{d:\"revocationValues\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.25\":{d:\"escTimeStamp\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.26\":{d:\"certCRLTimestamp\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.27\":{d:\"archiveTimeStamp\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.28\":{d:\"signatureType\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.29\":{d:\"dvcsDvc\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.30\":{d:\"cekReference\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.31\":{d:\"maxCEKDecrypts\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.32\":{d:\"kekDerivationAlg\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.33\":{d:\"intendedRecipients\",c:\"S/MIME Authenticated Attributes. Obsolete\",w:true},\"1.2.840.113549.1.9.16.2.34\":{d:\"cmcUnsignedData\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.35\":{d:\"fwPackageID\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.36\":{d:\"fwTargetHardwareIDs\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.37\":{d:\"fwDecryptKeyID\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.38\":{d:\"fwImplCryptAlgs\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.39\":{d:\"fwWrappedFirmwareKey\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.40\":{d:\"fwCommunityIdentifiers\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.41\":{d:\"fwPkgMessageDigest\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.42\":{d:\"fwPackageInfo\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.43\":{d:\"fwImplCompressAlgs\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.44\":{d:\"etsAttrCertificateRefs\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.45\":{d:\"etsAttrRevocationRefs\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.46\":{d:\"binarySigningTime\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.47\":{d:\"signingCertificateV2\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.48\":{d:\"etsArchiveTimeStampV2\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.49\":{d:\"erInternal\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.50\":{d:\"erExternal\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.51\":{d:\"multipleSignatures\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.52\":{d:\"cmsAlgorithmProtect\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.53\":{d:\"setKeyInformation\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.54\":{d:\"asymmDecryptKeyID\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.55\":{d:\"secureHeaderFieldsIdentifier\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.56\":{d:\"otpChallenge\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.57\":{d:\"revocationChallenge\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.2.58\":{d:\"estIdentityLinking\",c:\"S/MIME Authenticated Attributes\"},\"1.2.840.113549.1.9.16.3.1\":{d:\"esDHwith3DES\",c:\"S/MIME Algorithms. Obsolete\",w:true},\"1.2.840.113549.1.9.16.3.2\":{d:\"esDHwithRC2\",c:\"S/MIME Algorithms. Obsolete\",w:true},\"1.2.840.113549.1.9.16.3.3\":{d:\"3desWrap\",c:\"S/MIME Algorithms. Obsolete\",w:true},\"1.2.840.113549.1.9.16.3.4\":{d:\"rc2Wrap\",c:\"S/MIME Algorithms. Obsolete\",w:true},\"1.2.840.113549.1.9.16.3.5\":{d:\"esDH\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.6\":{d:\"cms3DESwrap\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.7\":{d:\"cmsRC2wrap\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.8\":{d:\"zlib\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.9\":{d:\"pwriKEK\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.10\":{d:\"ssDH\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.11\":{d:\"hmacWith3DESwrap\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.12\":{d:\"hmacWithAESwrap\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.13\":{d:\"md5XorExperiment\",c:\"S/MIME Algorithms. Experimental\",w:true},\"1.2.840.113549.1.9.16.3.14\":{d:\"rsaKEM\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.15\":{d:\"authEnc128\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.16\":{d:\"authEnc256\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.17\":{d:\"hssLmsHashSig\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.18\":{d:\"chaCha20Poly1305\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.19\":{d:\"ecdhHKDF-SHA256\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.20\":{d:\"ecdhHKDF-SHA384\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.21\":{d:\"ecdhHKDF-SHA512\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.22\":{d:\"aesSIV-CMAC-256\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.23\":{d:\"aesSIV-CMAC-384\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.24\":{d:\"aesSIV-CMAC-512\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.25\":{d:\"aesSIV-CMAC-wrap256\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.26\":{d:\"aesSIV-CMAC-wrap384\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.27\":{d:\"aesSIV-CMAC-wrap512\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.28\":{d:\"hkdfWithSha256\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.29\":{d:\"hkdfWithSha384\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.3.30\":{d:\"hkdfWithSha512\",c:\"S/MIME Algorithms\"},\"1.2.840.113549.1.9.16.4.1\":{d:\"certDist-ldap\",c:\"S/MIME Certificate Distribution\"},\"1.2.840.113549.1.9.16.5.1\":{d:\"sigPolicyQualifier-spuri x\",c:\"S/MIME Signature Policy Qualifiers\"},\"1.2.840.113549.1.9.16.5.2\":{d:\"sigPolicyQualifier-spUserNotice\",c:\"S/MIME Signature Policy Qualifiers\"},\"1.2.840.113549.1.9.16.6.1\":{d:\"proofOfOrigin\",c:\"S/MIME Commitment Type Identifiers\"},\"1.2.840.113549.1.9.16.6.2\":{d:\"proofOfReceipt\",c:\"S/MIME Commitment Type Identifiers\"},\"1.2.840.113549.1.9.16.6.3\":{d:\"proofOfDelivery\",c:\"S/MIME Commitment Type Identifiers\"},\"1.2.840.113549.1.9.16.6.4\":{d:\"proofOfSender\",c:\"S/MIME Commitment Type Identifiers\"},\"1.2.840.113549.1.9.16.6.5\":{d:\"proofOfApproval\",c:\"S/MIME Commitment Type Identifiers\"},\"1.2.840.113549.1.9.16.6.6\":{d:\"proofOfCreation\",c:\"S/MIME Commitment Type Identifiers\"},\"1.2.840.113549.1.9.16.7.1\":{d:\"testAmoco\",c:\"S/MIMETest Security Policies\"},\"1.2.840.113549.1.9.16.7.2\":{d:\"testCaterpillar\",c:\"S/MIMETest Security Policies\"},\"1.2.840.113549.1.9.16.7.3\":{d:\"testWhirlpool\",c:\"S/MIMETest Security Policies\"},\"1.2.840.113549.1.9.16.7.4\":{d:\"testWhirlpoolCategories\",c:\"S/MIMETest Security Policies\"},\"1.2.840.113549.1.9.16.8.1\":{d:\"glUseKEK\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.2\":{d:\"glDelete\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.3\":{d:\"glAddMember\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.4\":{d:\"glDeleteMember\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.5\":{d:\"glRekey\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.6\":{d:\"glAddOwner\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.7\":{d:\"glRemoveOwner\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.8\":{d:\"glkCompromise\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.9\":{d:\"glkRefresh\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.10\":{d:\"glFailInfo\",c:\"S/MIME Symmetric Key Distribution Attributes. Obsolete\",w:true},\"1.2.840.113549.1.9.16.8.11\":{d:\"glaQueryRequest\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.12\":{d:\"glaQueryResponse\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.13\":{d:\"glProvideCert\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.14\":{d:\"glUpdateCert\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.8.15\":{d:\"glKey\",c:\"S/MIME Symmetric Key Distribution Attributes\"},\"1.2.840.113549.1.9.16.9\":{d:\"signatureTypeIdentifier\",c:\"S/MIME\"},\"1.2.840.113549.1.9.16.9.1\":{d:\"originatorSig\",c:\"S/MIME Signature Type Identifier\"},\"1.2.840.113549.1.9.16.9.2\":{d:\"domainSig\",c:\"S/MIME Signature Type Identifier\"},\"1.2.840.113549.1.9.16.9.3\":{d:\"additionalAttributesSig\",c:\"S/MIME Signature Type Identifier\"},\"1.2.840.113549.1.9.16.9.4\":{d:\"reviewSig\",c:\"S/MIME Signature Type Identifier\"},\"1.2.840.113549.1.9.16.10.1\":{d:\"envelopedData\",c:\"S/MIME X.400 Encoded Information Types\"},\"1.2.840.113549.1.9.16.10.2\":{d:\"signedData\",c:\"S/MIME X.400 Encoded Information Types\"},\"1.2.840.113549.1.9.16.10.3\":{d:\"certsOnly\",c:\"S/MIME X.400 Encoded Information Types\"},\"1.2.840.113549.1.9.16.10.4\":{d:\"signedReceipt\",c:\"S/MIME X.400 Encoded Information Types\"},\"1.2.840.113549.1.9.16.10.5\":{d:\"envelopedX400\",c:\"S/MIME X.400 Encoded Information Types\"},\"1.2.840.113549.1.9.16.10.6\":{d:\"signedX400\",c:\"S/MIME X.400 Encoded Information Types\"},\"1.2.840.113549.1.9.16.10.7\":{d:\"compressedData\",c:\"S/MIME X.400 Encoded Information Types\"},\"1.2.840.113549.1.9.16.11\":{d:\"capabilities\",c:\"S/MIME\"},\"1.2.840.113549.1.9.16.11.1\":{d:\"preferBinaryInside\",c:\"S/MIME Capability\"},\"1.2.840.113549.1.9.16.12\":{d:\"pskcAttributes\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.1\":{d:\"pskcManufacturer\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.2\":{d:\"pskcSerialNo\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.3\":{d:\"pskcModel\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.4\":{d:\"pskcIssueno\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.5\":{d:\"pskcDevicebinding\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.6\":{d:\"pskcDevicestartdate\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.7\":{d:\"pskcDeviceexpirydate\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.8\":{d:\"pskcModuleid\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.9\":{d:\"pskcKeyid\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.10\":{d:\"pskcAlgorithm\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.11\":{d:\"pskcIssuer\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.12\":{d:\"pskcKeyprofileid\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.13\":{d:\"pskcKeyreference\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.14\":{d:\"pskcFriendlyname\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.15\":{d:\"pskcAlgorithmparams\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.16\":{d:\"pskcCounter\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.17\":{d:\"pskcTime\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.18\":{d:\"pskcTimeinterval\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.19\":{d:\"pskcTimedrift\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.20\":{d:\"pskcValuemac\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.21\":{d:\"pskcKeystartdate\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.22\":{d:\"pskcKeyexpirydate\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.23\":{d:\"pskcNooftransactions\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.24\":{d:\"pskcKeyusages\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.25\":{d:\"pskcPinpolicy\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.26\":{d:\"pskcDeviceuserid\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.12.27\":{d:\"pskcKeyuserid\",c:\"S/MIME Portable Symmetric Key Container Attributes\"},\"1.2.840.113549.1.9.16.13\":{d:\"otherRecipientInfoIds\",c:\"S/MIME Other Recipient Info Identifiers\"},\"1.2.840.113549.1.9.16.13.1\":{d:\"keyTransPSK\",c:\"S/MIME Other Recipient Info Identifiers\"},\"1.2.840.113549.1.9.16.13.2\":{d:\"keyAgreePSK\",c:\"S/MIME Other Recipient Info Identifiers\"},\"1.2.840.113549.1.9.20\":{d:\"friendlyName (for PKCS #12)\",c:\"PKCS #9 via PKCS #12\"},\"1.2.840.113549.1.9.21\":{d:\"localKeyID (for PKCS #12)\",c:\"PKCS #9 via PKCS #12\"},\"1.2.840.113549.1.9.22\":{d:\"certTypes (for PKCS #12)\",c:\"PKCS #9 via PKCS #12\"},\"1.2.840.113549.1.9.22.1\":{d:\"x509Certificate (for PKCS #12)\",c:\"PKCS #9 via PKCS #12\"},\"1.2.840.113549.1.9.22.2\":{d:\"sdsiCertificate (for PKCS #12)\",c:\"PKCS #9 via PKCS #12\"},\"1.2.840.113549.1.9.23\":{d:\"crlTypes (for PKCS #12)\",c:\"PKCS #9 via PKCS #12\"},\"1.2.840.113549.1.9.23.1\":{d:\"x509Crl (for PKCS #12)\",c:\"PKCS #9 via PKCS #12\"},\"1.2.840.113549.1.9.24\":{d:\"pkcs9objectClass\",c:\"PKCS #9/RFC 2985\"},\"1.2.840.113549.1.9.25\":{d:\"pkcs9attributes\",c:\"PKCS #9/RFC 2985\"},\"1.2.840.113549.1.9.25.1\":{d:\"pkcs15Token\",c:\"PKCS #9/RFC 2985 attribute\"},\"1.2.840.113549.1.9.25.2\":{d:\"encryptedPrivateKeyInfo\",c:\"PKCS #9/RFC 2985 attribute\"},\"1.2.840.113549.1.9.25.3\":{d:\"randomNonce\",c:\"PKCS #9/RFC 2985 attribute\"},\"1.2.840.113549.1.9.25.4\":{d:\"sequenceNumber\",c:\"PKCS #9/RFC 2985 attribute\"},\"1.2.840.113549.1.9.25.5\":{d:\"pkcs7PDU\",c:\"PKCS #9/RFC 2985 attribute\"},\"1.2.840.113549.1.9.26\":{d:\"pkcs9syntax\",c:\"PKCS #9/RFC 2985\"},\"1.2.840.113549.1.9.27\":{d:\"pkcs9matchingRules\",c:\"PKCS #9/RFC 2985\"},\"1.2.840.113549.1.9.52\":{d:\"cmsAlgorithmProtection\",c:\"RFC 6211\"},\"1.2.840.113549.1.12\":{d:\"pkcs-12\",c:\"\"},\"1.2.840.113549.1.12.1\":{d:\"pkcs-12-PbeIds\",c:\"This OID was formerly assigned as PKCS #12 modeID\"},\"1.2.840.113549.1.12.1.1\":{d:\"pbeWithSHAAnd128BitRC4\",c:\"PKCS #12 PbeIds. This OID was formerly assigned as pkcs-12-OfflineTransportMode\"},\"1.2.840.113549.1.12.1.2\":{d:\"pbeWithSHAAnd40BitRC4\",c:\"PKCS #12 PbeIds. This OID was formerly assigned as pkcs-12-OnlineTransportMode\"},\"1.2.840.113549.1.12.1.3\":{d:\"pbeWithSHAAnd3-KeyTripleDES-CBC\",c:\"PKCS #12 PbeIds\"},\"1.2.840.113549.1.12.1.4\":{d:\"pbeWithSHAAnd2-KeyTripleDES-CBC\",c:\"PKCS #12 PbeIds\"},\"1.2.840.113549.1.12.1.5\":{d:\"pbeWithSHAAnd128BitRC2-CBC\",c:\"PKCS #12 PbeIds\"},\"1.2.840.113549.1.12.1.6\":{d:\"pbeWithSHAAnd40BitRC2-CBC\",c:\"PKCS #12 PbeIds\"},\"1.2.840.113549.1.12.2\":{d:\"pkcs-12-ESPVKID\",c:\"Deprecated\",w:true},\"1.2.840.113549.1.12.2.1\":{d:\"pkcs-12-PKCS8KeyShrouding\",c:\"PKCS #12 ESPVKID. Deprecated, use (1 2 840 113549 1 12 3 5) instead\",w:true},\"1.2.840.113549.1.12.3\":{d:\"pkcs-12-BagIds\",c:\"\"},\"1.2.840.113549.1.12.3.1\":{d:\"pkcs-12-keyBagId\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.3.2\":{d:\"pkcs-12-certAndCRLBagId\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.3.3\":{d:\"pkcs-12-secretBagId\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.3.4\":{d:\"pkcs-12-safeContentsId\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.3.5\":{d:\"pkcs-12-pkcs-8ShroudedKeyBagId\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.4\":{d:\"pkcs-12-CertBagID\",c:\"Deprecated\",w:true},\"1.2.840.113549.1.12.4.1\":{d:\"pkcs-12-X509CertCRLBagID\",c:\"PKCS #12 CertBagID. This OID was formerly assigned as pkcs-12-X509CertCRLBag\"},\"1.2.840.113549.1.12.4.2\":{d:\"pkcs-12-SDSICertBagID\",c:\"PKCS #12 CertBagID. This OID was formerly assigned as pkcs-12-SDSICertBag\"},\"1.2.840.113549.1.12.5\":{d:\"pkcs-12-OID\",c:\"\",w:true},\"1.2.840.113549.1.12.5.1\":{d:\"pkcs-12-PBEID\",c:\"PKCS #12 OID. Deprecated, use the partially compatible (1 2 840 113549 1 12 1) OIDs instead\",w:true},\"1.2.840.113549.1.12.5.1.1\":{d:\"pkcs-12-PBEWithSha1And128BitRC4\",c:\"PKCS #12 OID PBEID. Deprecated, use (1 2 840 113549 1 12 1 1) instead\",w:true},\"1.2.840.113549.1.12.5.1.2\":{d:\"pkcs-12-PBEWithSha1And40BitRC4\",c:\"PKCS #12 OID PBEID. Deprecated, use (1 2 840 113549 1 12 1 2) instead\",w:true},\"1.2.840.113549.1.12.5.1.3\":{d:\"pkcs-12-PBEWithSha1AndTripleDESCBC\",c:\"PKCS #12 OID PBEID. Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 3) or (1 2 840 113549 1 12 1 4) instead\",w:true},\"1.2.840.113549.1.12.5.1.4\":{d:\"pkcs-12-PBEWithSha1And128BitRC2CBC\",c:\"PKCS #12 OID PBEID. Deprecated, use (1 2 840 113549 1 12 1 5) instead\",w:true},\"1.2.840.113549.1.12.5.1.5\":{d:\"pkcs-12-PBEWithSha1And40BitRC2CBC\",c:\"PKCS #12 OID PBEID. Deprecated, use (1 2 840 113549 1 12 1 6) instead\",w:true},\"1.2.840.113549.1.12.5.1.6\":{d:\"pkcs-12-PBEWithSha1AndRC4\",c:\"PKCS #12 OID PBEID. Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 1) or (1 2 840 113549 1 12 1 2) instead\",w:true},\"1.2.840.113549.1.12.5.1.7\":{d:\"pkcs-12-PBEWithSha1AndRC2CBC\",c:\"PKCS #12 OID PBEID. Deprecated, use the incompatible but similar (1 2 840 113549 1 12 1 5) or (1 2 840 113549 1 12 1 6) instead\",w:true},\"1.2.840.113549.1.12.5.2\":{d:\"pkcs-12-EnvelopingID\",c:\"PKCS #12 OID. Deprecated, use the conventional PKCS #1 OIDs instead\"},\"1.2.840.113549.1.12.5.2.1\":{d:\"pkcs-12-RSAEncryptionWith128BitRC4\",c:\"PKCS #12 OID EnvelopingID. Deprecated, use the conventional PKCS #1 OIDs instead\",w:true},\"1.2.840.113549.1.12.5.2.2\":{d:\"pkcs-12-RSAEncryptionWith40BitRC4\",c:\"PKCS #12 OID EnvelopingID. Deprecated, use the conventional PKCS #1 OIDs instead\",w:true},\"1.2.840.113549.1.12.5.2.3\":{d:\"pkcs-12-RSAEncryptionWithTripleDES\",c:\"PKCS #12 OID EnvelopingID. Deprecated, use the conventional PKCS #1 OIDs instead\",w:true},\"1.2.840.113549.1.12.5.3\":{d:\"pkcs-12-SignatureID\",c:\"PKCS #12 OID EnvelopingID. Deprecated, use the conventional PKCS #1 OIDs instead\",w:true},\"1.2.840.113549.1.12.5.3.1\":{d:\"pkcs-12-RSASignatureWithSHA1Digest\",c:\"PKCS #12 OID SignatureID. Deprecated, use the conventional PKCS #1 OIDs instead\",w:true},\"1.2.840.113549.1.12.10\":{d:\"pkcs-12Version1\",c:\"\"},\"1.2.840.113549.1.12.10.1\":{d:\"pkcs-12BadIds\",c:\"\"},\"1.2.840.113549.1.12.10.1.1\":{d:\"pkcs-12-keyBag\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.10.1.2\":{d:\"pkcs-12-pkcs-8ShroudedKeyBag\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.10.1.3\":{d:\"pkcs-12-certBag\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.10.1.4\":{d:\"pkcs-12-crlBag\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.10.1.5\":{d:\"pkcs-12-secretBag\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.12.10.1.6\":{d:\"pkcs-12-safeContentsBag\",c:\"PKCS #12 BagIds\"},\"1.2.840.113549.1.15.1\":{d:\"pkcs15modules\",c:\"PKCS #15\"},\"1.2.840.113549.1.15.2\":{d:\"pkcs15attributes\",c:\"PKCS #15\"},\"1.2.840.113549.1.15.3\":{d:\"pkcs15contentType\",c:\"PKCS #15\"},\"1.2.840.113549.1.15.3.1\":{d:\"pkcs15content\",c:\"PKCS #15 content type\"},\"1.2.840.113549.2\":{d:\"digestAlgorithm\",c:\"\"},\"1.2.840.113549.2.2\":{d:\"md2\",c:\"RSADSI digestAlgorithm\"},\"1.2.840.113549.2.4\":{d:\"md4\",c:\"RSADSI digestAlgorithm\"},\"1.2.840.113549.2.5\":{d:\"md5\",c:\"RSADSI digestAlgorithm\"},\"1.2.840.113549.2.7\":{d:\"hmacWithSHA1\",c:\"RSADSI digestAlgorithm\"},\"1.2.840.113549.2.8\":{d:\"hmacWithSHA224\",c:\"RSADSI digestAlgorithm\"},\"1.2.840.113549.2.9\":{d:\"hmacWithSHA256\",c:\"RSADSI digestAlgorithm\"},\"1.2.840.113549.2.10\":{d:\"hmacWithSHA384\",c:\"RSADSI digestAlgorithm\"},\"1.2.840.113549.2.11\":{d:\"hmacWithSHA512\",c:\"RSADSI digestAlgorithm\"},\"1.2.840.113549.3\":{d:\"encryptionAlgorithm\",c:\"\"},\"1.2.840.113549.3.2\":{d:\"rc2CBC\",c:\"RSADSI encryptionAlgorithm\"},\"1.2.840.113549.3.3\":{d:\"rc2ECB\",c:\"RSADSI encryptionAlgorithm\"},\"1.2.840.113549.3.4\":{d:\"rc4\",c:\"RSADSI encryptionAlgorithm\"},\"1.2.840.113549.3.5\":{d:\"rc4WithMAC\",c:\"RSADSI encryptionAlgorithm\"},\"1.2.840.113549.3.6\":{d:\"desx-CBC\",c:\"RSADSI encryptionAlgorithm\"},\"1.2.840.113549.3.7\":{d:\"des-EDE3-CBC\",c:\"RSADSI encryptionAlgorithm\"},\"1.2.840.113549.3.8\":{d:\"rc5CBC\",c:\"RSADSI encryptionAlgorithm\"},\"1.2.840.113549.3.9\":{d:\"rc5-CBCPad\",c:\"RSADSI encryptionAlgorithm\"},\"1.2.840.113549.3.10\":{d:\"desCDMF\",c:\"RSADSI encryptionAlgorithm. Formerly called CDMFCBCPad\"},\"1.2.840.114021.1.6.1\":{d:\"Identrus unknown policyIdentifier\",c:\"Identrus\"},\"1.2.840.114021.4.1\":{d:\"identrusOCSP\",c:\"Identrus\"},\"1.2.840.113556.1.2.241\":{d:\"deliveryMechanism\",c:\"Microsoft Exchange Server - attribute\"},\"1.2.840.113556.1.2.281\":{d:\"ntSecurityDescriptor\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.3.0\":{d:\"site-Addressing\",c:\"Microsoft Exchange Server - object class\"},\"1.2.840.113556.1.3.13\":{d:\"classSchema\",c:\"Microsoft Exchange Server - object class\"},\"1.2.840.113556.1.3.14\":{d:\"attributeSchema\",c:\"Microsoft Exchange Server - object class\"},\"1.2.840.113556.1.3.17\":{d:\"mailbox-Agent\",c:\"Microsoft Exchange Server - object class\"},\"1.2.840.113556.1.3.22\":{d:\"mailbox\",c:\"Microsoft Exchange Server - object class\"},\"1.2.840.113556.1.3.23\":{d:\"container\",c:\"Microsoft Exchange Server - object class\"},\"1.2.840.113556.1.3.46\":{d:\"mailRecipient\",c:\"Microsoft Exchange Server - object class\"},\"1.2.840.113556.1.4.145\":{d:\"revision\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1327\":{d:\"pKIDefaultKeySpec\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1328\":{d:\"pKIKeyUsage\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1329\":{d:\"pKIMaxIssuingDepth\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1330\":{d:\"pKICriticalExtensions\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1331\":{d:\"pKIExpirationPeriod\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1332\":{d:\"pKIOverlapPeriod\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1333\":{d:\"pKIExtendedKeyUsage\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1334\":{d:\"pKIDefaultCSPs\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1335\":{d:\"pKIEnrollmentAccess\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1429\":{d:\"msPKI-RA-Signature\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1430\":{d:\"msPKI-Enrollment-Flag\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1431\":{d:\"msPKI-Private-Key-Flag\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1432\":{d:\"msPKI-Certificate-Name-Flag\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1433\":{d:\"msPKI-Minimal-Key-Size\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1434\":{d:\"msPKI-Template-Schema-Version\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1435\":{d:\"msPKI-Template-Minor-Revision\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1436\":{d:\"msPKI-Cert-Template-OID\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1437\":{d:\"msPKI-Supersede-Templates\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1438\":{d:\"msPKI-RA-Policies\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1439\":{d:\"msPKI-Certificate-Policy\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1674\":{d:\"msPKI-Certificate-Application-Policy\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.1.4.1675\":{d:\"msPKI-RA-Application-Policies\",c:\"Microsoft Cert Template - attribute\"},\"1.2.840.113556.4.3\":{d:\"microsoftExcel\",c:\"Microsoft\"},\"1.2.840.113556.4.4\":{d:\"titledWithOID\",c:\"Microsoft\"},\"1.2.840.113556.4.5\":{d:\"microsoftPowerPoint\",c:\"Microsoft\"},\"1.2.840.113583.1\":{d:\"adobeAcrobat\",c:\"Adobe Acrobat\"},\"1.2.840.113583.1.1\":{d:\"acrobatSecurity\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.1\":{d:\"pdfPassword\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.2\":{d:\"pdfDefaultSigningCredential\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.3\":{d:\"pdfDefaultEncryptionCredential\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.4\":{d:\"pdfPasswordTimeout\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.5\":{d:\"pdfAuthenticDocumentsTrust\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.6\":{d:\"pdfDynamicContentTrust\",c:\"Adobe Acrobat security\",w:true},\"1.2.840.113583.1.1.7\":{d:\"pdfUbiquityTrust\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.8\":{d:\"pdfRevocationInfoArchival\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.9\":{d:\"pdfX509Extension\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.9.1\":{d:\"pdfTimeStamp\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.9.2\":{d:\"pdfArchiveRevInfo\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.1.10\":{d:\"pdfPPLKLiteCredential\",c:\"Adobe Acrobat security\"},\"1.2.840.113583.1.2\":{d:\"acrobatCPS\",c:\"Adobe Acrobat CPS\"},\"1.2.840.113583.1.2.1\":{d:\"pdfAuthenticDocumentsCPS\",c:\"Adobe Acrobat CPS\"},\"1.2.840.113583.1.2.2\":{d:\"pdfTestCPS\",c:\"Adobe Acrobat CPS\"},\"1.2.840.113583.1.2.3\":{d:\"pdfUbiquityCPS\",c:\"Adobe Acrobat CPS\"},\"1.2.840.113583.1.2.4\":{d:\"pdfAdhocCPS\",c:\"Adobe Acrobat CPS\"},\"1.2.840.113583.1.7\":{d:\"acrobatUbiquity\",c:\"Adobe Acrobat ubiquity\"},\"1.2.840.113583.1.7.1\":{d:\"pdfUbiquitySubRights\",c:\"Adobe Acrobat ubiquity\"},\"1.2.840.113583.1.9\":{d:\"acrobatExtension\",c:\"Adobe Acrobat X.509 extension\"},\"1.2.840.113628.114.1.7\":{d:\"adobePKCS7\",c:\"Adobe\"},\"1.2.840.113635.100\":{d:\"appleDataSecurity\",c:\"Apple\"},\"1.2.840.113635.100.1\":{d:\"appleTrustPolicy\",c:\"Apple\"},\"1.2.840.113635.100.1.1\":{d:\"appleISignTP\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.2\":{d:\"appleX509Basic\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.3\":{d:\"appleSSLPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.4\":{d:\"appleLocalCertGenPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.5\":{d:\"appleCSRGenPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.6\":{d:\"appleCRLPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.7\":{d:\"appleOCSPPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.8\":{d:\"appleSMIMEPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.9\":{d:\"appleEAPPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.10\":{d:\"appleSWUpdateSigningPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.11\":{d:\"appleIPSecPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.12\":{d:\"appleIChatPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.13\":{d:\"appleResourceSignPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.14\":{d:\"applePKINITClientPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.15\":{d:\"applePKINITServerPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.16\":{d:\"appleCodeSigningPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.1.17\":{d:\"applePackageSigningPolicy\",c:\"Apple trust policy\"},\"1.2.840.113635.100.2\":{d:\"appleSecurityAlgorithm\",c:\"Apple\"},\"1.2.840.113635.100.2.1\":{d:\"appleFEE\",c:\"Apple security algorithm\"},\"1.2.840.113635.100.2.2\":{d:\"appleASC\",c:\"Apple security algorithm\"},\"1.2.840.113635.100.2.3\":{d:\"appleFEE_MD5\",c:\"Apple security algorithm\"},\"1.2.840.113635.100.2.4\":{d:\"appleFEE_SHA1\",c:\"Apple security algorithm\"},\"1.2.840.113635.100.2.5\":{d:\"appleFEED\",c:\"Apple security algorithm\"},\"1.2.840.113635.100.2.6\":{d:\"appleFEEDEXP\",c:\"Apple security algorithm\"},\"1.2.840.113635.100.2.7\":{d:\"appleECDSA\",c:\"Apple security algorithm\"},\"1.2.840.113635.100.3\":{d:\"appleDotMacCertificate\",c:\"Apple\"},\"1.2.840.113635.100.3.1\":{d:\"appleDotMacCertificateRequest\",c:\"Apple dotMac certificate\"},\"1.2.840.113635.100.3.2\":{d:\"appleDotMacCertificateExtension\",c:\"Apple dotMac certificate\"},\"1.2.840.113635.100.3.3\":{d:\"appleDotMacCertificateRequestValues\",c:\"Apple dotMac certificate\"},\"1.2.840.113635.100.4\":{d:\"appleExtendedKeyUsage\",c:\"Apple\"},\"1.2.840.113635.100.4.1\":{d:\"appleCodeSigning\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.1.1\":{d:\"appleCodeSigningDevelopment\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.1.2\":{d:\"appleSoftwareUpdateSigning\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.1.3\":{d:\"appleCodeSigningThirdParty\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.1.4\":{d:\"appleResourceSigning\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.2\":{d:\"appleIChatSigning\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.3\":{d:\"appleIChatEncryption\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.4\":{d:\"appleSystemIdentity\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.5\":{d:\"appleCryptoEnv\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.5.1\":{d:\"appleCryptoProductionEnv\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.5.2\":{d:\"appleCryptoMaintenanceEnv\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.5.3\":{d:\"appleCryptoTestEnv\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.5.4\":{d:\"appleCryptoDevelopmentEnv\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.6\":{d:\"appleCryptoQoS\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.6.1\":{d:\"appleCryptoTier0QoS\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.6.2\":{d:\"appleCryptoTier1QoS\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.6.3\":{d:\"appleCryptoTier2QoS\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.4.6.4\":{d:\"appleCryptoTier3QoS\",c:\"Apple extended key usage\"},\"1.2.840.113635.100.5\":{d:\"appleCertificatePolicies\",c:\"Apple\"},\"1.2.840.113635.100.5.1\":{d:\"appleCertificatePolicyID\",c:\"Apple\"},\"1.2.840.113635.100.5.2\":{d:\"appleDotMacCertificatePolicyID\",c:\"Apple\"},\"1.2.840.113635.100.5.3\":{d:\"appleADCCertificatePolicyID\",c:\"Apple\"},\"1.2.840.113635.100.6\":{d:\"appleCertificateExtensions\",c:\"Apple\"},\"1.2.840.113635.100.6.1\":{d:\"appleCertificateExtensionCodeSigning\",c:\"Apple certificate extension\"},\"1.2.840.113635.100.6.1.1\":{d:\"appleCertificateExtensionAppleSigning\",c:\"Apple certificate extension\"},\"1.2.840.113635.100.6.1.2\":{d:\"appleCertificateExtensionADCDeveloperSigning\",c:\"Apple certificate extension\"},\"1.2.840.113635.100.6.1.3\":{d:\"appleCertificateExtensionADCAppleSigning\",c:\"Apple certificate extension\"},\"1.2.840.113635.100.15.1\":{d:\"appleCustomCertificateExtension1\",c:\"Apple custom certificate extension\"},\"1.2.840.113635.100.15.2\":{d:\"appleCustomCertificateExtension2\",c:\"Apple custom certificate extension\"},\"1.2.840.113635.100.15.3\":{d:\"appleCustomCertificateExtension3\",c:\"Apple custom certificate extension\"},\"1.3.6.1.4.1.311.2.1.4\":{d:\"spcIndirectDataContext\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.10\":{d:\"spcAgencyInfo\",c:\"Microsoft code signing. Also assigned as policyLink\"},\"1.3.6.1.4.1.311.2.1.11\":{d:\"spcStatementType\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.12\":{d:\"spcSpOpusInfo\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.14\":{d:\"certReqExtensions\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.2.1.15\":{d:\"spcPEImageData\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.18\":{d:\"spcRawFileData\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.19\":{d:\"spcStructuredStorageData\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.20\":{d:\"spcJavaClassData (type 1)\",c:'Microsoft code signing. Formerly \"link extension\" aka \"glue extension\"'},\"1.3.6.1.4.1.311.2.1.21\":{d:\"individualCodeSigning\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.2.1.22\":{d:\"commercialCodeSigning\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.2.1.25\":{d:\"spcLink (type 2)\",c:'Microsoft code signing. Also assigned as \"glue extension\"'},\"1.3.6.1.4.1.311.2.1.26\":{d:\"spcMinimalCriteriaInfo\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.27\":{d:\"spcFinancialCriteriaInfo\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.28\":{d:\"spcLink (type 3)\",c:'Microsoft code signing. Also assigned as \"glue extension\"'},\"1.3.6.1.4.1.311.2.1.29\":{d:\"spcHashInfoObjID\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.1.30\":{d:\"spcSipInfoObjID\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.2.2\":{d:\"ctl\",c:\"Microsoft CTL\"},\"1.3.6.1.4.1.311.2.2.1\":{d:\"ctlTrustedCodesigningCAList\",c:\"Microsoft CTL\"},\"1.3.6.1.4.1.311.2.2.2\":{d:\"ctlTrustedClientAuthCAList\",c:\"Microsoft CTL\"},\"1.3.6.1.4.1.311.2.2.3\":{d:\"ctlTrustedServerAuthCAList\",c:\"Microsoft CTL\"},\"1.3.6.1.4.1.311.3.2.1\":{d:\"timestampRequest\",c:\"Microsoft code signing\"},\"1.3.6.1.4.1.311.10.1\":{d:\"certTrustList\",c:\"Microsoft contentType\"},\"1.3.6.1.4.1.311.10.1.1\":{d:\"sortedCtl\",c:\"Microsoft contentType\"},\"1.3.6.1.4.1.311.10.2\":{d:\"nextUpdateLocation\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.10.3.1\":{d:\"certTrustListSigning\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.2\":{d:\"timeStampSigning\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.3\":{d:\"serverGatedCrypto\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.3.1\":{d:\"serialized\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.10.3.4\":{d:\"encryptedFileSystem\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.5\":{d:\"whqlCrypto\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.6\":{d:\"nt5Crypto\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.7\":{d:\"oemWHQLCrypto\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.8\":{d:\"embeddedNTCrypto\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.9\":{d:\"rootListSigner\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.10\":{d:\"qualifiedSubordination\",c:\"Microsoft extended 3key usage\"},\"1.3.6.1.4.1.311.10.3.11\":{d:\"keyRecovery\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.12\":{d:\"documentSigning\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.13\":{d:\"lifetimeSigning\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.14\":{d:\"mobileDeviceSoftware\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.15\":{d:\"smartDisplay\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.16\":{d:\"cspSignature\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.3.4.1\":{d:\"efsRecovery\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.4.1\":{d:\"yesnoTrustAttr\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.10.5.1\":{d:\"drm\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.5.2\":{d:\"drmIndividualization\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.6.1\":{d:\"licenses\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.6.2\":{d:\"licenseServer\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.10.7.1\":{d:\"keyidRdn\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.10.8.1\":{d:\"removeCertificate\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.10.9.1\":{d:\"crossCertDistPoints\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.10.10.1\":{d:\"cmcAddAttributes\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.10.11\":{d:\"certPropIdPrefix\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.10.11.4\":{d:\"certMd5HashPropId\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.10.11.20\":{d:\"certKeyIdentifierPropId\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.10.11.28\":{d:\"certIssuerSerialNumberMd5HashPropId\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.10.11.29\":{d:\"certSubjectNameMd5HashPropId\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.10.12.1\":{d:\"anyApplicationPolicy\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.12\":{d:\"catalog\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.12.1.1\":{d:\"catalogList\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.12.1.2\":{d:\"catalogListMember\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.12.2.1\":{d:\"catalogNameValueObjID\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.12.2.2\":{d:\"catalogMemberInfoObjID\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.13.1\":{d:\"renewalCertificate\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.13.2.1\":{d:\"enrolmentNameValuePair\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.13.2.2\":{d:\"enrolmentCSP\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.13.2.3\":{d:\"osVersion\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.16.4\":{d:\"microsoftRecipientInfo\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.17.1\":{d:\"pkcs12KeyProviderNameAttr\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.17.2\":{d:\"localMachineKeyset\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.17.3\":{d:\"pkcs12ExtendedAttributes\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.20.1\":{d:\"autoEnrollCtlUsage\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.20.2\":{d:\"enrollCerttypeExtension\",c:\"Microsoft CAPICOM certificate template, V1\"},\"1.3.6.1.4.1.311.20.2.1\":{d:\"enrollmentAgent\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.20.2.2\":{d:\"smartcardLogon\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.20.2.3\":{d:\"userPrincipalName\",c:\"Microsoft UPN\"},\"1.3.6.1.4.1.311.20.3\":{d:\"certManifold\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.1\":{d:\"cAKeyCertIndexPair\",c:\"Microsoft attribute. Also assigned as certsrvCaVersion\"},\"1.3.6.1.4.1.311.21.2\":{d:\"certSrvPreviousCertHash\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.3\":{d:\"crlVirtualBase\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.4\":{d:\"crlNextPublish\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.5\":{d:\"caExchange\",c:\"Microsoft extended key usage\",w:true},\"1.3.6.1.4.1.311.21.6\":{d:\"keyRecovery\",c:\"Microsoft extended key usage\",w:true},\"1.3.6.1.4.1.311.21.7\":{d:\"certificateTemplate\",c:\"Microsoft CAPICOM certificate template, V2\"},\"1.3.6.1.4.1.311.21.9\":{d:\"rdnDummySigner\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.10\":{d:\"applicationCertPolicies\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.11\":{d:\"applicationPolicyMappings\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.12\":{d:\"applicationPolicyConstraints\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.13\":{d:\"archivedKey\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.21.14\":{d:\"crlSelfCDP\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.15\":{d:\"requireCertChainPolicy\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.16\":{d:\"archivedKeyCertHash\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.17\":{d:\"issuedCertHash\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.19\":{d:\"dsEmailReplication\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.21.20\":{d:\"requestClientInfo\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.21.21\":{d:\"encryptedKeyHash\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.21.22\":{d:\"certsrvCrossCaVersion\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.25.1\":{d:\"ntdsReplication\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.25.2\":{d:\"ntdsCASecurityExt\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.25.2.1\":{d:\"ntdsObjectSID\",c:\"Microsoft\"},\"1.3.6.1.4.1.311.31.1\":{d:\"productUpdate\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.47.1.1\":{d:\"systemHealth\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.47.1.3\":{d:\"systemHealthLoophole\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.60.1.1\":{d:\"rootProgramFlags\",c:\"Microsoft policy attribute\"},\"1.3.6.1.4.1.311.61.1.1\":{d:\"kernelModeCodeSigning\",c:\"Microsoft extended key usage\"},\"1.3.6.1.4.1.311.60.2.1.1\":{d:\"jurisdictionOfIncorporationL\",c:\"Microsoft (???)\"},\"1.3.6.1.4.1.311.60.2.1.2\":{d:\"jurisdictionOfIncorporationSP\",c:\"Microsoft (???)\"},\"1.3.6.1.4.1.311.60.2.1.3\":{d:\"jurisdictionOfIncorporationC\",c:\"Microsoft (???)\"},\"1.3.6.1.4.1.311.76.509.1.1\":{d:\"microsoftCPS\",c:\"Microsoft PKI services\"},\"1.3.6.1.4.1.311.88\":{d:\"capiCom\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.88.1\":{d:\"capiComVersion\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.88.2\":{d:\"capiComAttribute\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.88.2.1\":{d:\"capiComDocumentName\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.88.2.2\":{d:\"capiComDocumentDescription\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.88.3\":{d:\"capiComEncryptedData\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.311.88.3.1\":{d:\"capiComEncryptedContent\",c:\"Microsoft attribute\"},\"1.3.6.1.4.1.188.7.1.1\":{d:\"ascom\",c:\"Ascom Systech\"},\"1.3.6.1.4.1.188.7.1.1.1\":{d:\"ideaECB\",c:\"Ascom Systech\"},\"1.3.6.1.4.1.188.7.1.1.2\":{d:\"ideaCBC\",c:\"Ascom Systech\"},\"1.3.6.1.4.1.188.7.1.1.3\":{d:\"ideaCFB\",c:\"Ascom Systech\"},\"1.3.6.1.4.1.188.7.1.1.4\":{d:\"ideaOFB\",c:\"Ascom Systech\"},\"1.3.6.1.4.1.2363.3.2\":{d:\"euroControlUntrustedEA\",c:\"Eurocontrol certificate policy\"},\"1.3.6.1.4.1.2363.4.3\":{d:\"euroControlEARootCA\",c:\"Eurocontrol certificate policy\"},\"1.3.6.1.4.1.2363.4.3.1\":{d:\"euroControlEABridgeCA\",c:\"Eurocontrol certificate policy\"},\"1.3.6.1.4.1.2363.4.3.1.1\":{d:\"euroControlEAIssuingCA\",c:\"Eurocontrol certificate policy\"},\"1.3.6.1.4.1.2363.4.3.1.1.1\":{d:\"euroControlEAClientCertificate\",c:\"Eurocontrol certificate policy\"},\"1.3.6.1.4.1.2363.4.3.1.1.2\":{d:\"euroControlEAServerCertificate\",c:\"Eurocontrol certificate policy\"},\"1.3.6.1.4.1.2363.4.3.1.1.3\":{d:\"euroControlEASWIMSigningCertificate\",c:\"Eurocontrol certificate policy\"},\"1.3.6.1.4.1.2428.10.1.1\":{d:\"UNINETT policyIdentifier\",c:\"UNINETT PCA\"},\"1.3.6.1.4.1.2712.10\":{d:\"ICE-TEL policyIdentifier\",c:\"ICE-TEL CA\"},\"1.3.6.1.4.1.2786.1.1.1\":{d:\"ICE-TEL Italian policyIdentifier\",c:\"ICE-TEL CA policy\"},\"1.3.6.1.4.1.3029.1.1.1\":{d:\"blowfishECB\",c:\"cryptlib encryption algorithm\"},\"1.3.6.1.4.1.3029.1.1.2\":{d:\"blowfishCBC\",c:\"cryptlib encryption algorithm\"},\"1.3.6.1.4.1.3029.1.1.3\":{d:\"blowfishCFB\",c:\"cryptlib encryption algorithm\"},\"1.3.6.1.4.1.3029.1.1.4\":{d:\"blowfishOFB\",c:\"cryptlib encryption algorithm\"},\"1.3.6.1.4.1.3029.1.2.1\":{d:\"elgamal\",c:\"cryptlib public-key algorithm\"},\"1.3.6.1.4.1.3029.1.2.1.1\":{d:\"elgamalWithSHA-1\",c:\"cryptlib public-key algorithm\"},\"1.3.6.1.4.1.3029.1.2.1.2\":{d:\"elgamalWithRIPEMD-160\",c:\"cryptlib public-key algorithm\"},\"1.3.6.1.4.1.3029.3.1.1\":{d:\"cryptlibPresenceCheck\",c:\"cryptlib attribute type\"},\"1.3.6.1.4.1.3029.3.1.2\":{d:\"pkiBoot\",c:\"cryptlib attribute type\"},\"1.3.6.1.4.1.3029.3.1.4\":{d:\"crlExtReason\",c:\"cryptlib attribute type\"},\"1.3.6.1.4.1.3029.3.1.5\":{d:\"keyFeatures\",c:\"cryptlib attribute type\"},\"1.3.6.1.4.1.3029.4.1\":{d:\"cryptlibContent\",c:\"cryptlib\"},\"1.3.6.1.4.1.3029.4.1.1\":{d:\"cryptlibConfigData\",c:\"cryptlib content type\"},\"1.3.6.1.4.1.3029.4.1.2\":{d:\"cryptlibUserIndex\",c:\"cryptlib content type\"},\"1.3.6.1.4.1.3029.4.1.3\":{d:\"cryptlibUserInfo\",c:\"cryptlib content type\"},\"1.3.6.1.4.1.3029.4.1.4\":{d:\"rtcsRequest\",c:\"cryptlib content type\"},\"1.3.6.1.4.1.3029.4.1.5\":{d:\"rtcsResponse\",c:\"cryptlib content type\"},\"1.3.6.1.4.1.3029.4.1.6\":{d:\"rtcsResponseExt\",c:\"cryptlib content type\"},\"1.3.6.1.4.1.3029.42.11172.1\":{d:\"mpeg-1\",c:\"cryptlib special MPEG-of-cat OID\"},\"1.3.6.1.4.1.3029.54.11940.54\":{d:'TSA policy \"Anything that arrives, we sign\"',c:\"cryptlib TSA policy\"},\"1.3.6.1.4.1.3029.88.89.90.90.89\":{d:\"xYZZY policyIdentifier\",c:\"cryptlib certificate policy\"},\"1.3.6.1.4.1.3401.8.1.1\":{d:\"pgpExtension\",c:\"PGP key information\"},\"1.3.6.1.4.1.3576.7\":{d:\"eciaAscX12Edi\",c:\"TMN EDI for Interactive Agents\"},\"1.3.6.1.4.1.3576.7.1\":{d:\"plainEDImessage\",c:\"TMN EDI for Interactive Agents\"},\"1.3.6.1.4.1.3576.7.2\":{d:\"signedEDImessage\",c:\"TMN EDI for Interactive Agents\"},\"1.3.6.1.4.1.3576.7.5\":{d:\"integrityEDImessage\",c:\"TMN EDI for Interactive Agents\"},\"1.3.6.1.4.1.3576.7.65\":{d:\"iaReceiptMessage\",c:\"TMN EDI for Interactive Agents\"},\"1.3.6.1.4.1.3576.7.97\":{d:\"iaStatusMessage\",c:\"TMN EDI for Interactive Agents\"},\"1.3.6.1.4.1.3576.8\":{d:\"eciaEdifact\",c:\"TMN EDI for Interactive Agents\"},\"1.3.6.1.4.1.3576.9\":{d:\"eciaNonEdi\",c:\"TMN EDI for Interactive Agents\"},\"1.3.6.1.4.1.4146\":{d:\"Globalsign\",c:\"Globalsign\"},\"1.3.6.1.4.1.4146.1\":{d:\"globalsignPolicy\",c:\"Globalsign\"},\"1.3.6.1.4.1.4146.1.10\":{d:\"globalsignDVPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.20\":{d:\"globalsignOVPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.30\":{d:\"globalsignTSAPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.40\":{d:\"globalsignClientCertPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.50\":{d:\"globalsignCodeSignPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.60\":{d:\"globalsignRootSignPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.70\":{d:\"globalsignTrustedRootPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.80\":{d:\"globalsignEDIClientPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.81\":{d:\"globalsignEDIServerPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.90\":{d:\"globalsignTPMRootPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.4146.1.95\":{d:\"globalsignOCSPPolicy\",c:\"Globalsign policy\"},\"1.3.6.1.4.1.5309.1\":{d:\"edelWebPolicy\",c:\"EdelWeb policy\"},\"1.3.6.1.4.1.5309.1.2\":{d:\"edelWebCustomerPolicy\",c:\"EdelWeb policy\"},\"1.3.6.1.4.1.5309.1.2.1\":{d:\"edelWebClepsydrePolicy\",c:\"EdelWeb policy\"},\"1.3.6.1.4.1.5309.1.2.2\":{d:\"edelWebExperimentalTSAPolicy\",c:\"EdelWeb policy\"},\"1.3.6.1.4.1.5309.1.2.3\":{d:\"edelWebOpenEvidenceTSAPolicy\",c:\"EdelWeb policy\"},\"1.3.6.1.4.1.5472\":{d:\"timeproof\",c:\"enterprise\"},\"1.3.6.1.4.1.5472.1\":{d:\"tss\",c:\"timeproof\"},\"1.3.6.1.4.1.5472.1.1\":{d:\"tss80\",c:\"timeproof TSS\"},\"1.3.6.1.4.1.5472.1.2\":{d:\"tss380\",c:\"timeproof TSS\"},\"1.3.6.1.4.1.5472.1.3\":{d:\"tss400\",c:\"timeproof TSS\"},\"1.3.6.1.4.1.5770.0.3\":{d:\"secondaryPractices\",c:\"MEDePass\"},\"1.3.6.1.4.1.5770.0.4\":{d:\"physicianIdentifiers\",c:\"MEDePass\"},\"1.3.6.1.4.1.6449.1.2.1.3.1\":{d:\"comodoPolicy\",c:\"Comodo CA\"},\"1.3.6.1.4.1.6449.1.2.2.15\":{d:\"wotrustPolicy\",c:\"WoTrust (Comodo) CA\"},\"1.3.6.1.4.1.6449.1.3.5.2\":{d:\"comodoCertifiedDeliveryService\",c:\"Comodo CA\"},\"1.3.6.1.4.1.6449.2.1.1\":{d:\"comodoTimestampingPolicy\",c:\"Comodo CA\"},\"1.3.6.1.4.1.8301.3.5.1\":{d:\"validityModelChain\",c:\"TU Darmstadt ValidityModel\"},\"1.3.6.1.4.1.8301.3.5.2\":{d:\"validityModelShell\",c:\"ValidityModel\"},\"1.3.6.1.4.1.8231.1\":{d:\"rolUnicoNacional\",c:\"Chilean Government national unique roll number\"},\"1.3.6.1.4.1.11129.2.4.2\":{d:\"googleSignedCertificateTimestamp\",c:\"Google Certificate Transparency\"},\"1.3.6.1.4.1.11129.2.4.3\":{d:\"googlePrecertificatePoison\",c:\"Google Certificate Transparency\"},\"1.3.6.1.4.1.11129.2.4.4\":{d:\"googlePrecertificateCA\",c:\"Google Certificate Transparency\"},\"1.3.6.1.4.1.11129.2.4.5\":{d:\"googleOcspSignedCertificateTimestamp\",c:\"Google Certificate Transparency\"},\"1.3.6.1.4.1.11591\":{d:\"gnu\",c:\"GNU Project (see https://www.gnupg.org/oids.html)\"},\"1.3.6.1.4.1.11591.1\":{d:\"gnuRadius\",c:\"GNU Radius\"},\"1.3.6.1.4.1.11591.2.2.1\":{d:\"gpgX509StandaloneCert\",c:\"Cert is intentionally self-signed.\"},\"1.3.6.1.4.1.11591.2.2.2\":{d:\"gpgX509WellKnownPrivateKey\",c:\"Mark cert as having a well known key\"},\"1.3.6.1.4.1.11591.2.2.10\":{d:\"gpgX509PgpKdfKekParm\",c:\"Description of ECC params\"},\"1.3.6.1.4.1.11591.2.3.1\":{d:\"gpgCtPgpKeyblock\",c:\"CMS ct for a binary PGP keyblock\"},\"1.3.6.1.4.1.11591.2.4.1.1\":{d:\"gpgFingerprint\",c:\"LDAP keyserver attribute\"},\"1.3.6.1.4.1.11591.2.4.1.2\":{d:\"gpgSubFingerprint\",c:\"LDAP keyserver attribute\"},\"1.3.6.1.4.1.11591.2.4.1.3\":{d:\"gpgMailbox\",c:\"LDAP keyserver attribute\"},\"1.3.6.1.4.1.11591.2.4.1.4\":{d:\"gpgSubCertID\",c:\"LDAP keyserver attribute\"},\"1.3.6.1.4.1.11591.2.5.1\":{d:\"gpgNtds\",c:\"LDAP URL ext, auth with current AD user\"},\"1.3.6.1.4.1.11591.2.6.1\":{d:\"gpgX509PgpUseCert\",c:\"X.509 encoded OpenPGP key usage\"},\"1.3.6.1.4.1.11591.2.6.2\":{d:\"gpgX509PgpUseSign\",c:\"X.509 encoded PGP key usage\"},\"1.3.6.1.4.1.11591.2.6.3\":{d:\"gpgX509PgpUseEncr\",c:\"X.509 encoded PGP key usage\"},\"1.3.6.1.4.1.11591.2.6.4\":{d:\"gpgX509PgpUseAuth\",c:\"X.509 encoded PGP key usage\"},\"1.3.6.1.4.1.11591.2.12242973\":{d:\"gpgInvalidOid\",c:\"0xBAD01D to indicate an invalid encoded OID\"},\"1.3.6.1.4.1.11591.3\":{d:\"gnuRadar\",c:\"GNU Radar\"},\"1.3.6.1.4.1.11591.4.11\":{d:\"scrypt\",c:\"GNU Generic Security Service\"},\"1.3.6.1.4.1.11591.12\":{d:\"gnuDigestAlgorithm\",c:\"GNU digest algorithm\"},\"1.3.6.1.4.1.11591.12.2\":{d:\"tiger\",c:\"GNU digest algorithm\"},\"1.3.6.1.4.1.11591.13\":{d:\"gnuEncryptionAlgorithm\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2\":{d:\"serpent\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.1\":{d:\"serpent128_ECB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.2\":{d:\"serpent128_CBC\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.3\":{d:\"serpent128_OFB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.4\":{d:\"serpent128_CFB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.21\":{d:\"serpent192_ECB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.22\":{d:\"serpent192_CBC\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.23\":{d:\"serpent192_OFB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.24\":{d:\"serpent192_CFB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.41\":{d:\"serpent256_ECB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.42\":{d:\"serpent256_CBC\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.43\":{d:\"serpent256_OFB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.13.2.44\":{d:\"serpent256_CFB\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.15.1\":{d:\"curve25519\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.15.2\":{d:\"curve448\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.15.3\":{d:\"curve25519ph\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.11591.15.4\":{d:\"curve448ph\",c:\"GNU encryption algorithm\"},\"1.3.6.1.4.1.16334.509.1.1\":{d:\"Northrop Grumman extKeyUsage?\",c:\"Northrop Grumman extended key usage\"},\"1.3.6.1.4.1.16334.509.2.1\":{d:\"ngcClass1\",c:\"Northrop Grumman policy\"},\"1.3.6.1.4.1.16334.509.2.2\":{d:\"ngcClass2\",c:\"Northrop Grumman policy\"},\"1.3.6.1.4.1.16334.509.2.3\":{d:\"ngcClass3\",c:\"Northrop Grumman policy\"},\"1.3.6.1.4.1.23629.1.4.2.1.1\":{d:\"safenetUsageLimit\",c:\"SafeNet\"},\"1.3.6.1.4.1.23629.1.4.2.1.2\":{d:\"safenetEndDate\",c:\"SafeNet\"},\"1.3.6.1.4.1.23629.1.4.2.1.3\":{d:\"safenetStartDate\",c:\"SafeNet\"},\"1.3.6.1.4.1.23629.1.4.2.1.4\":{d:\"safenetAdminCert\",c:\"SafeNet\"},\"1.3.6.1.4.1.23629.1.4.2.2.1\":{d:\"safenetKeyDigest\",c:\"SafeNet\"},\"1.3.6.1.4.1.25054.3\":{d:\"carillonSecurity\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.1\":{d:\"carillonCommercialPKI\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.2\":{d:\"carillonCommercialTSA\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.3\":{d:\"carillonCommercialSCVP\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.3.1\":{d:\"carillonSCVPExtendedStatusInfo\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.4\":{d:\"carillonCommercialCMS\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.4.1\":{d:\"carillonExtKeyUsageCIVCardAuth\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.4.2\":{d:\"carillonExtKeyUsageCIVContentSigning\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.5\":{d:\"carillonCommercialLSAP\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.5.1\":{d:\"carillonExtKeyUsageLSAPCodeSigning\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.6\":{d:\"carillonCommercialCE\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.7\":{d:\"carillonCommercialLicense\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.7.1\":{d:\"carillonExtKeyUsageLicenseSigning\",c:\"Carillon security\"},\"1.3.6.1.4.1.25054.3.8\":{d:\"carillonCommercialSecret\",c:\"Carillon security\"},\"1.3.6.1.4.1.51483.2.1\":{d:\"hashOfRootKey\",c:\"CTIA\"},\"1.3.6.1.5.2.3.1\":{d:\"authData\",c:\"Kerberos\"},\"1.3.6.1.5.2.3.2\":{d:\"dHKeyData\",c:\"Kerberos\"},\"1.3.6.1.5.2.3.3\":{d:\"rkeyData\",c:\"Kerberos\"},\"1.3.6.1.5.2.3.4\":{d:\"keyPurposeClientAuth\",c:\"Kerberos\"},\"1.3.6.1.5.2.3.5\":{d:\"keyPurposeKdc\",c:\"Kerberos\"},\"1.3.6.1.5.2.3.6\":{d:\"kdf\",c:\"Kerberos\"},\"1.3.6.1.5.5.7\":{d:\"pkix\",c:\"\"},\"1.3.6.1.5.5.7.0.12\":{d:\"attributeCert\",c:\"PKIX\"},\"1.3.6.1.5.5.7.1\":{d:\"privateExtension\",c:\"PKIX\"},\"1.3.6.1.5.5.7.1.1\":{d:\"authorityInfoAccess\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.2\":{d:\"biometricInfo\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.3\":{d:\"qcStatements\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.4\":{d:\"acAuditIdentity\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.5\":{d:\"acTargeting\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.6\":{d:\"acAaControls\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.7\":{d:\"ipAddrBlocks\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.8\":{d:\"autonomousSysIds\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.9\":{d:\"routerIdentifier\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.10\":{d:\"acProxying\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.11\":{d:\"subjectInfoAccess\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.12\":{d:\"logoType\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.13\":{d:\"wlanSSID\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.14\":{d:\"proxyCertInfo\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.15\":{d:\"acPolicies\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.16\":{d:\"certificateWarranty\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.18\":{d:\"cmsContentConstraints\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.19\":{d:\"otherCerts\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.20\":{d:\"wrappedApexContinKey\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.21\":{d:\"clearanceConstraints\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.22\":{d:\"skiSemantics\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.23\":{d:\"noSecrecyAfforded\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.24\":{d:\"tlsFeature\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.25\":{d:\"manufacturerUsageDescription\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.26\":{d:\"tnAuthList\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.27\":{d:\"jwtClaimConstraints\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.28\":{d:\"ipAddrBlocksV2\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.29\":{d:\"autonomousSysIdsV2\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.30\":{d:\"manufacturerUsageDescriptionSigner\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.31\":{d:\"acmeIdentifier\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.32\":{d:\"masaURL\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.33\":{d:\"enhancedJWTClaimConstraints\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.1.34\":{d:\"nfTypes\",c:\"PKIX private extension\"},\"1.3.6.1.5.5.7.2\":{d:\"policyQualifierIds\",c:\"PKIX\"},\"1.3.6.1.5.5.7.2.1\":{d:\"cps\",c:\"PKIX policy qualifier\"},\"1.3.6.1.5.5.7.2.2\":{d:\"unotice\",c:\"PKIX policy qualifier\"},\"1.3.6.1.5.5.7.2.3\":{d:\"textNotice\",c:\"PKIX policy qualifier\"},\"1.3.6.1.5.5.7.2.4\":{d:\"acps\",c:\"PKIX policy qualifier\"},\"1.3.6.1.5.5.7.2.5\":{d:\"acunotice\",c:\"PKIX policy qualifier\"},\"1.3.6.1.5.5.7.3\":{d:\"keyPurpose\",c:\"PKIX\"},\"1.3.6.1.5.5.7.3.1\":{d:\"serverAuth\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.2\":{d:\"clientAuth\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.3\":{d:\"codeSigning\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.4\":{d:\"emailProtection\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.5\":{d:\"ipsecEndSystem\",c:\"PKIX key purpose\",w:true},\"1.3.6.1.5.5.7.3.6\":{d:\"ipsecTunnel\",c:\"PKIX key purpose\",w:true},\"1.3.6.1.5.5.7.3.7\":{d:\"ipsecUser\",c:\"PKIX key purpose\",w:true},\"1.3.6.1.5.5.7.3.8\":{d:\"timeStamping\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.9\":{d:\"ocspSigning\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.10\":{d:\"dvcs\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.11\":{d:\"sbgpCertAAServerAuth\",c:\"PKIX key purpose\",w:true},\"1.3.6.1.5.5.7.3.12\":{d:\"scvpResponder\",c:\"PKIX key purpose\",w:true},\"1.3.6.1.5.5.7.3.13\":{d:\"eapOverPPP\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.14\":{d:\"eapOverLAN\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.15\":{d:\"scvpServer\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.16\":{d:\"scvpClient\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.17\":{d:\"ipsecIKE\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.18\":{d:\"capwapAC\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.19\":{d:\"capwapWTP\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.20\":{d:\"sipDomain\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.21\":{d:\"secureShellClient\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.22\":{d:\"secureShellServer\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.23\":{d:\"sendRouter\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.24\":{d:\"sendProxiedRouter\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.25\":{d:\"sendOwner\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.26\":{d:\"sendProxiedOwner\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.27\":{d:\"cmcCA\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.28\":{d:\"cmcRA\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.29\":{d:\"cmcArchive\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.30\":{d:\"bgpsecRouter\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.31\":{d:\"bimi\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.32\":{d:\"cmKGA\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.33\":{d:\"rpcTLSClient\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.34\":{d:\"rpcTLSServer\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.35\":{d:\"bundleSecurity\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.3.36\":{d:\"documentSigning\",c:\"PKIX key purpose\"},\"1.3.6.1.5.5.7.4\":{d:\"cmpInformationTypes\",c:\"PKIX\"},\"1.3.6.1.5.5.7.4.1\":{d:\"caProtEncCert\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.2\":{d:\"signKeyPairTypes\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.3\":{d:\"encKeyPairTypes\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.4\":{d:\"preferredSymmAlg\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.5\":{d:\"caKeyUpdateInfo\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.6\":{d:\"currentCRL\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.7\":{d:\"unsupportedOIDs\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.10\":{d:\"keyPairParamReq\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.11\":{d:\"keyPairParamRep\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.12\":{d:\"revPassphrase\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.13\":{d:\"implicitConfirm\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.14\":{d:\"confirmWaitTime\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.15\":{d:\"origPKIMessage\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.4.16\":{d:\"suppLangTags\",c:\"PKIX CMP information\"},\"1.3.6.1.5.5.7.5\":{d:\"crmfRegistration\",c:\"PKIX\"},\"1.3.6.1.5.5.7.5.1\":{d:\"regCtrl\",c:\"PKIX CRMF registration\"},\"1.3.6.1.5.5.7.5.1.1\":{d:\"regToken\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.1.2\":{d:\"authenticator\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.1.3\":{d:\"pkiPublicationInfo\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.1.4\":{d:\"pkiArchiveOptions\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.1.5\":{d:\"oldCertID\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.1.6\":{d:\"protocolEncrKey\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.1.7\":{d:\"altCertTemplate\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.1.8\":{d:\"wtlsTemplate\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.2\":{d:\"utf8Pairs\",c:\"PKIX CRMF registration\"},\"1.3.6.1.5.5.7.5.2.1\":{d:\"utf8Pairs\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.5.2.2\":{d:\"certReq\",c:\"PKIX CRMF registration control\"},\"1.3.6.1.5.5.7.6\":{d:\"algorithms\",c:\"PKIX\"},\"1.3.6.1.5.5.7.6.1\":{d:\"des40\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.2\":{d:\"noSignature\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.3\":{d:\"dhSigHmacSha1\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.4\":{d:\"dhPop\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.5\":{d:\"dhPopSha224\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.6\":{d:\"dhPopSha256\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.7\":{d:\"dhPopSha384\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.8\":{d:\"dhPopSha512\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.15\":{d:\"dhPopStaticSha224HmacSha224\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.16\":{d:\"dhPopStaticSha256HmacSha256\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.17\":{d:\"dhPopStaticSha384HmacSha384\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.18\":{d:\"dhPopStaticSha512HmacSha512\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.25\":{d:\"ecdhPopStaticSha224HmacSha224\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.26\":{d:\"ecdhPopStaticSha256HmacSha256\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.27\":{d:\"ecdhPopStaticSha384HmacSha384\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.28\":{d:\"ecdhPopStaticSha512HmacSha512\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.30\":{d:\"rsaPssShake128\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.31\":{d:\"rsaPssShake256\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.32\":{d:\"ecdsaShake128\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.6.33\":{d:\"ecdsaShake256\",c:\"PKIX algorithm\"},\"1.3.6.1.5.5.7.7\":{d:\"cmcControls\",c:\"PKIX\"},\"1.3.6.1.5.5.7.8\":{d:\"otherNames\",c:\"PKIX\"},\"1.3.6.1.5.5.7.8.1\":{d:\"personalData\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.2\":{d:\"userGroup\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.3\":{d:\"permanentIdentifier\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.5\":{d:\"xmppAddr\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.6\":{d:\"SIM\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.7\":{d:\"dnsSRV\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.8\":{d:\"naiRealm\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.9\":{d:\"smtpUTF8Mailbox\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.10\":{d:\"acpNodeName\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.8.11\":{d:\"bundleEID\",c:\"PKIX other name\"},\"1.3.6.1.5.5.7.9\":{d:\"personalData\",c:\"PKIX qualified certificates\"},\"1.3.6.1.5.5.7.9.1\":{d:\"dateOfBirth\",c:\"PKIX personal data\"},\"1.3.6.1.5.5.7.9.2\":{d:\"placeOfBirth\",c:\"PKIX personal data\"},\"1.3.6.1.5.5.7.9.3\":{d:\"gender\",c:\"PKIX personal data\"},\"1.3.6.1.5.5.7.9.4\":{d:\"countryOfCitizenship\",c:\"PKIX personal data\"},\"1.3.6.1.5.5.7.9.5\":{d:\"countryOfResidence\",c:\"PKIX personal data\"},\"1.3.6.1.5.5.7.10\":{d:\"attributeCertificate\",c:\"PKIX\"},\"1.3.6.1.5.5.7.10.1\":{d:\"authenticationInfo\",c:\"PKIX attribute certificate extension\"},\"1.3.6.1.5.5.7.10.2\":{d:\"accessIdentity\",c:\"PKIX attribute certificate extension\"},\"1.3.6.1.5.5.7.10.3\":{d:\"chargingIdentity\",c:\"PKIX attribute certificate extension\"},\"1.3.6.1.5.5.7.10.4\":{d:\"group\",c:\"PKIX attribute certificate extension\"},\"1.3.6.1.5.5.7.10.5\":{d:\"role\",c:\"PKIX attribute certificate extension\"},\"1.3.6.1.5.5.7.10.6\":{d:\"wlanSSID\",c:\"PKIX attribute-certificate extension\"},\"1.3.6.1.5.5.7.11\":{d:\"personalData\",c:\"PKIX qualified certificates\"},\"1.3.6.1.5.5.7.11.1\":{d:\"pkixQCSyntax-v1\",c:\"PKIX qualified certificates\"},\"1.3.6.1.5.5.7.11.2\":{d:\"pkixQCSyntax-v2\",c:\"PKIX qualified certificates\"},\"1.3.6.1.5.5.7.12\":{d:\"pkixCCT\",c:\"PKIX CMC Content Types\"},\"1.3.6.1.5.5.7.12.2\":{d:\"pkiData\",c:\"PKIX CMC Content Types\"},\"1.3.6.1.5.5.7.12.3\":{d:\"pkiResponse\",c:\"PKIX CMC Content Types\"},\"1.3.6.1.5.5.7.14.2\":{d:\"resourceCertificatePolicy\",c:\"PKIX policies\"},\"1.3.6.1.5.5.7.17\":{d:\"scvpCheck\",c:\"PKIX SCVP check\"},\"1.3.6.1.5.5.7.17.1\":{d:\"scvpCheckBuildPath\",c:\"SCVP\"},\"1.3.6.1.5.5.7.17.2\":{d:\"scvpCheckBuildValidPath\",c:\"SCVP\"},\"1.3.6.1.5.5.7.17.3\":{d:\"scvpCheckBuildStatusCheckedPath\",c:\"SCVP\"},\"1.3.6.1.5.5.7.17.4\":{d:\"scvpCheckBuildAaPath\",c:\"SCVP\"},\"1.3.6.1.5.5.7.17.5\":{d:\"scvpCheckBuildValidAaPath\",c:\"SCVP\"},\"1.3.6.1.5.5.7.17.6\":{d:\"scvpCheckBuildStatusCheckedAaPath\",c:\"SCVP\"},\"1.3.6.1.5.5.7.17.7\":{d:\"scvpCheckStatusCheckAcAndBuildStatusCheckedAaPath\",c:\"SCVP\"},\"1.3.6.1.5.5.7.18\":{d:\"scvpWantBack\",c:\"PKIX SCVP wantback\"},\"1.3.6.1.5.5.7.18.1\":{d:\"scvpWantbackBestCertPath\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.2\":{d:\"scvpWantbackRevocationInfo\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.4\":{d:\"scvpWantbackPublicKeyInfo\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.5\":{d:\"scvpWantbackAaCertPath\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.6\":{d:\"scvpWantbackAaRevocationInfo\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.7\":{d:\"scvpWantbackAcRevocationInfo\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.9\":{d:\"scvpWantbackRelayedResponses\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.10\":{d:\"scvpWantbackCert\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.11\":{d:\"scvpWantbackAcCert\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.12\":{d:\"scvpWantbackAllCertPaths\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.13\":{d:\"scvpWantbackEeRevocationInfo\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.18.14\":{d:\"scvpWantbackCAsRevocationInfo\",c:\"SCVP wantback\"},\"1.3.6.1.5.5.7.19\":{d:\"scvpValPolicy\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.1\":{d:\"scvpDefaultValPolicy\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.2\":{d:\"scvpNameValAlg\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.2.1\":{d:\"scvpNameErrorNameMismatch\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.2.2\":{d:\"scvpNameErrorNoName\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.2.3\":{d:\"scvpNameErrorUnknownAlg\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.2.4\":{d:\"scvpNameErrorBadName\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.2.5\":{d:\"scvpNameErrorBadNameType\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.2.6\":{d:\"scvpNameErrorMixedNames\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.3\":{d:\"scvpBasicValAlg\",c:\"SCVP validation policy\"},\"1.3.6.1.5.5.7.19.3.1\":{d:\"scvpValErrorExpired\",c:\"SCVP validation policy error\"},\"1.3.6.1.5.5.7.19.3.2\":{d:\"scvpValErrorNotYetValid\",c:\"SCVP validation policy error\"},\"1.3.6.1.5.5.7.19.3.3\":{d:\"scvpValErrorWrongTrustAnchor\",c:\"SCVP validation policy error\"},\"1.3.6.1.5.5.7.19.3.4\":{d:\"scvpValErrorNoValidCertPath\",c:\"SCVP validation policy error\"},\"1.3.6.1.5.5.7.19.3.5\":{d:\"scvpValErrorRevoked\",c:\"SCVP validation policy error\"},\"1.3.6.1.5.5.7.19.3.9\":{d:\"scvpValErrorInvalidKeyPurpose\",c:\"SCVP validation policy error\"},\"1.3.6.1.5.5.7.19.3.10\":{d:\"scvpValErrorInvalidKeyUsage\",c:\"SCVP validation policy error\"},\"1.3.6.1.5.5.7.19.3.11\":{d:\"scvpValErrorInvalidCertPolicy\",c:\"SCVP validation policy error\"},\"1.3.6.1.5.5.7.20\":{d:\"logo\",c:\"Qualified Certificate\"},\"1.3.6.1.5.5.7.20.1\":{d:\"logoLoyalty\",c:\"Qualified Certificate\"},\"1.3.6.1.5.5.7.20.2\":{d:\"logoBackground\",c:\"Qualified Certificate\"},\"1.3.6.1.5.5.7.48.1\":{d:\"ocsp\",c:\"PKIX OCSP\"},\"1.3.6.1.5.5.7.48.1.1\":{d:\"ocspBasic\",c:\"OCSP\"},\"1.3.6.1.5.5.7.48.1.2\":{d:\"ocspNonce\",c:\"OCSP\"},\"1.3.6.1.5.5.7.48.1.3\":{d:\"ocspCRL\",c:\"OCSP\"},\"1.3.6.1.5.5.7.48.1.4\":{d:\"ocspResponse\",c:\"OCSP\"},\"1.3.6.1.5.5.7.48.1.5\":{d:\"ocspNoCheck\",c:\"OCSP\"},\"1.3.6.1.5.5.7.48.1.6\":{d:\"ocspArchiveCutoff\",c:\"OCSP\"},\"1.3.6.1.5.5.7.48.1.7\":{d:\"ocspServiceLocator\",c:\"OCSP\"},\"1.3.6.1.5.5.7.48.2\":{d:\"caIssuers\",c:\"PKIX subject/authority info access descriptor\"},\"1.3.6.1.5.5.7.48.3\":{d:\"timeStamping\",c:\"PKIX subject/authority info access descriptor\"},\"1.3.6.1.5.5.7.48.4\":{d:\"dvcs\",c:\"PKIX subject/authority info access descriptor\"},\"1.3.6.1.5.5.7.48.5\":{d:\"caRepository\",c:\"PKIX subject/authority info access descriptor\"},\"1.3.6.1.5.5.7.48.7\":{d:\"signedObjectRepository\",c:\"PKIX subject/authority info access descriptor\"},\"1.3.6.1.5.5.7.48.10\":{d:\"rpkiManifest\",c:\"PKIX subject/authority info access descriptor\"},\"1.3.6.1.5.5.7.48.11\":{d:\"signedObject\",c:\"PKIX subject/authority info access descriptor\"},\"1.3.6.1.5.5.8.1.1\":{d:\"hmacMD5\",c:\"ISAKMP HMAC algorithm\"},\"1.3.6.1.5.5.8.1.2\":{d:\"hmacSHA\",c:\"ISAKMP HMAC algorithm\"},\"1.3.6.1.5.5.8.1.3\":{d:\"hmacTiger\",c:\"ISAKMP HMAC algorithm\"},\"1.3.6.1.5.5.8.2.2\":{d:\"iKEIntermediate\",c:\"IKE ???\"},\"1.3.12.2.1011.7.1\":{d:\"decEncryptionAlgorithm\",c:\"DASS algorithm\"},\"1.3.12.2.1011.7.1.2\":{d:\"decDEA\",c:\"DASS encryption algorithm\"},\"1.3.12.2.1011.7.2\":{d:\"decHashAlgorithm\",c:\"DASS algorithm\"},\"1.3.12.2.1011.7.2.1\":{d:\"decMD2\",c:\"DASS hash algorithm\"},\"1.3.12.2.1011.7.2.2\":{d:\"decMD4\",c:\"DASS hash algorithm\"},\"1.3.12.2.1011.7.3\":{d:\"decSignatureAlgorithm\",c:\"DASS algorithm\"},\"1.3.12.2.1011.7.3.1\":{d:\"decMD2withRSA\",c:\"DASS signature algorithm\"},\"1.3.12.2.1011.7.3.2\":{d:\"decMD4withRSA\",c:\"DASS signature algorithm\"},\"1.3.12.2.1011.7.3.3\":{d:\"decDEAMAC\",c:\"DASS signature algorithm\"},\"1.3.14.2.26.5\":{d:\"sha\",c:\"Unsure about this OID\"},\"1.3.14.3.2.1.1\":{d:\"rsa\",c:\"X.509. Unsure about this OID\"},\"1.3.14.3.2.2\":{d:\"md4WitRSA\",c:\"Oddball OIW OID\"},\"1.3.14.3.2.3\":{d:\"md5WithRSA\",c:\"Oddball OIW OID\"},\"1.3.14.3.2.4\":{d:\"md4WithRSAEncryption\",c:\"Oddball OIW OID\"},\"1.3.14.3.2.2.1\":{d:\"sqmod-N\",c:\"X.509. Deprecated\",w:true},\"1.3.14.3.2.3.1\":{d:\"sqmod-NwithRSA\",c:\"X.509. Deprecated\",w:true},\"1.3.14.3.2.6\":{d:\"desECB\",c:\"\"},\"1.3.14.3.2.7\":{d:\"desCBC\",c:\"\"},\"1.3.14.3.2.8\":{d:\"desOFB\",c:\"\"},\"1.3.14.3.2.9\":{d:\"desCFB\",c:\"\"},\"1.3.14.3.2.10\":{d:\"desMAC\",c:\"\"},\"1.3.14.3.2.11\":{d:\"rsaSignature\",c:\"ISO 9796-2, also X9.31 Part 1\"},\"1.3.14.3.2.12\":{d:\"dsa\",c:\"OIW?, supposedly from an incomplete version of SDN.701 (doesn't match final SDN.701)\",w:true},\"1.3.14.3.2.13\":{d:\"dsaWithSHA\",c:\"Oddball OIW OID. Incorrectly used by JDK 1.1 in place of (1 3 14 3 2 27)\",w:true},\"1.3.14.3.2.14\":{d:\"mdc2WithRSASignature\",c:\"Oddball OIW OID using 9796-2 padding rules\"},\"1.3.14.3.2.15\":{d:\"shaWithRSASignature\",c:\"Oddball OIW OID using 9796-2 padding rules\"},\"1.3.14.3.2.16\":{d:\"dhWithCommonModulus\",c:\"Oddball OIW OID. Deprecated, use a plain DH OID instead\",w:true},\"1.3.14.3.2.17\":{d:\"desEDE\",c:\"Oddball OIW OID. Mode is ECB\"},\"1.3.14.3.2.18\":{d:\"sha\",c:\"Oddball OIW OID\"},\"1.3.14.3.2.19\":{d:\"mdc-2\",c:\"Oddball OIW OID, DES-based hash, planned for X9.31 Part 2\"},\"1.3.14.3.2.20\":{d:\"dsaCommon\",c:\"Oddball OIW OID. Deprecated, use a plain DSA OID instead\",w:true},\"1.3.14.3.2.21\":{d:\"dsaCommonWithSHA\",c:\"Oddball OIW OID. Deprecated, use a plain dsaWithSHA OID instead\",w:true},\"1.3.14.3.2.22\":{d:\"rsaKeyTransport\",c:\"Oddball OIW OID\"},\"1.3.14.3.2.23\":{d:\"keyed-hash-seal\",c:\"Oddball OIW OID\"},\"1.3.14.3.2.24\":{d:\"md2WithRSASignature\",c:\"Oddball OIW OID using 9796-2 padding rules\"},\"1.3.14.3.2.25\":{d:\"md5WithRSASignature\",c:\"Oddball OIW OID using 9796-2 padding rules\"},\"1.3.14.3.2.26\":{d:\"sha1\",c:\"OIW\"},\"1.3.14.3.2.27\":{d:\"dsaWithSHA1\",c:\"OIW. This OID may also be assigned as ripemd-160\"},\"1.3.14.3.2.28\":{d:\"dsaWithCommonSHA1\",c:\"OIW\"},\"1.3.14.3.2.29\":{d:\"sha-1WithRSAEncryption\",c:\"Oddball OIW OID\"},\"1.3.14.3.3.1\":{d:\"simple-strong-auth-mechanism\",c:\"Oddball OIW OID\"},\"1.3.14.7.2.1.1\":{d:\"ElGamal\",c:\"Unsure about this OID\"},\"1.3.14.7.2.3.1\":{d:\"md2WithRSA\",c:\"Unsure about this OID\"},\"1.3.14.7.2.3.2\":{d:\"md2WithElGamal\",c:\"Unsure about this OID\"},\"1.3.18.0.2.18.1\":{d:\"hostIDMapping\",c:\"IBM RACF ID mapping\"},\"1.3.27.16\":{d:\"icaoSecurity\",c:\"ICAO security\"},\"1.3.27.16.0\":{d:\"icaoSecurity\",c:\"ICAO security test?\"},\"1.3.27.16.0.1.1.1.1.1.1.0\":{d:\"icaoTestValidationPolicy\",c:\"ICAO security test?\"},\"1.3.27.16.1\":{d:\"icaoCertPolicy\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2\":{d:\"icaoIATFRootCA\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1\":{d:\"icaoIdentityAssurance\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.1\":{d:\"icaoIdentityAssuranceLow\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.2\":{d:\"icaoIdentityAssuranceLowDevice\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.3\":{d:\"icaoIdentityAssuranceLowTSPMediated\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.4\":{d:\"icaoIdentityAssuranceMedium\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.5\":{d:\"icaoIdentityAssuranceMediumDevice\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.6\":{d:\"icaoIdentityAssuranceMediumTSPMediated\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.7\":{d:\"icaoIdentityAssuranceMediumHardware\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.8\":{d:\"icaoIdentityAssuranceMediumDeviceHardware\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.9\":{d:\"icaoIdentityAssuranceHigh\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.10\":{d:\"icaoIdentityAssuranceHighCardAuth\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.0.1.11\":{d:\"icaoIdentityAssuranceHighContentSigning\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1\":{d:\"icaoIATFBridgeCA\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1.0\":{d:\"icaoCAODRootCA\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1.1\":{d:\"icaoCAODBridgeCA\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1.1.1\":{d:\"icaoUSBridgeCA\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1.1.1.1\":{d:\"icaoFAARootCA\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1.1.1.1.1\":{d:\"icaoFAAIssuingCA\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1.1.1.1.1.1\":{d:\"icaoFAAClientCertificate\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1.1.1.1.1.2\":{d:\"icaoFAAServerCertificate\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.2.1.1.1.1.1.3\":{d:\"icaoFAASWIMSigningCertificate\",c:\"ICAO certificate policies\"},\"1.3.27.16.1.4.1.1\":{d:\"icaoSWIMSigning\",c:\"ICAO extended key usage\"},\"1.3.36.1\":{d:\"document\",c:\"Teletrust document\"},\"1.3.36.1.1\":{d:\"finalVersion\",c:\"Teletrust document\"},\"1.3.36.1.2\":{d:\"draft\",c:\"Teletrust document\"},\"1.3.36.2\":{d:\"sio\",c:\"Teletrust sio\"},\"1.3.36.2.1\":{d:\"sedu\",c:\"Teletrust sio\"},\"1.3.36.3\":{d:\"algorithm\",c:\"Teletrust algorithm\"},\"1.3.36.3.1\":{d:\"encryptionAlgorithm\",c:\"Teletrust algorithm\"},\"1.3.36.3.1.1\":{d:\"des\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.1.1\":{d:\"desECB_pad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.1.1.1\":{d:\"desECB_ISOpad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.1.2.1\":{d:\"desCBC_pad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.1.2.1.1\":{d:\"desCBC_ISOpad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.3\":{d:\"des_3\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.3.1.1\":{d:\"des_3ECB_pad\",c:\"Teletrust encryption algorithm. EDE triple DES\"},\"1.3.36.3.1.3.1.1.1\":{d:\"des_3ECB_ISOpad\",c:\"Teletrust encryption algorithm. EDE triple DES\"},\"1.3.36.3.1.3.2.1\":{d:\"des_3CBC_pad\",c:\"Teletrust encryption algorithm. EDE triple DES\"},\"1.3.36.3.1.3.2.1.1\":{d:\"des_3CBC_ISOpad\",c:\"Teletrust encryption algorithm. EDE triple DES\"},\"1.3.36.3.1.2\":{d:\"idea\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.2.1\":{d:\"ideaECB\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.2.1.1\":{d:\"ideaECB_pad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.2.1.1.1\":{d:\"ideaECB_ISOpad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.2.2\":{d:\"ideaCBC\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.2.2.1\":{d:\"ideaCBC_pad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.2.2.1.1\":{d:\"ideaCBC_ISOpad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.2.3\":{d:\"ideaOFB\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.2.4\":{d:\"ideaCFB\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.4\":{d:\"rsaEncryption\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.4.512.17\":{d:\"rsaEncryptionWithlmod512expe17\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.5\":{d:\"bsi-1\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.5.1\":{d:\"bsi_1ECB_pad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.5.2\":{d:\"bsi_1CBC_pad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.1.5.2.1\":{d:\"bsi_1CBC_PEMpad\",c:\"Teletrust encryption algorithm\"},\"1.3.36.3.2\":{d:\"hashAlgorithm\",c:\"Teletrust algorithm\"},\"1.3.36.3.2.1\":{d:\"ripemd160\",c:\"Teletrust hash algorithm\"},\"1.3.36.3.2.2\":{d:\"ripemd128\",c:\"Teletrust hash algorithm\"},\"1.3.36.3.2.3\":{d:\"ripemd256\",c:\"Teletrust hash algorithm\"},\"1.3.36.3.2.4\":{d:\"mdc2singleLength\",c:\"Teletrust hash algorithm\"},\"1.3.36.3.2.5\":{d:\"mdc2doubleLength\",c:\"Teletrust hash algorithm\"},\"1.3.36.3.3\":{d:\"signatureAlgorithm\",c:\"Teletrust algorithm\"},\"1.3.36.3.3.1\":{d:\"rsaSignature\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.1.1\":{d:\"rsaSignatureWithsha1\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.1.1.1024.11\":{d:\"rsaSignatureWithsha1_l1024_l11\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.1.2\":{d:\"rsaSignatureWithripemd160\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.1.2.1024.11\":{d:\"rsaSignatureWithripemd160_l1024_l11\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.1.3\":{d:\"rsaSignatureWithrimpemd128\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.1.4\":{d:\"rsaSignatureWithrimpemd256\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.2\":{d:\"ecsieSign\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.2.1\":{d:\"ecsieSignWithsha1\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.2.2\":{d:\"ecsieSignWithripemd160\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.2.3\":{d:\"ecsieSignWithmd2\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.2.4\":{d:\"ecsieSignWithmd5\",c:\"Teletrust signature algorithm\"},\"1.3.36.3.3.2.8.1.1.1\":{d:\"brainpoolP160r1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.2\":{d:\"brainpoolP160t1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.3\":{d:\"brainpoolP192r1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.4\":{d:\"brainpoolP192t1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.5\":{d:\"brainpoolP224r1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.6\":{d:\"brainpoolP224t1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.7\":{d:\"brainpoolP256r1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.8\":{d:\"brainpoolP256t1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.9\":{d:\"brainpoolP320r1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.10\":{d:\"brainpoolP320t1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.11\":{d:\"brainpoolP384r1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.12\":{d:\"brainpoolP384t1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.13\":{d:\"brainpoolP512r1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.3.2.8.1.1.14\":{d:\"brainpoolP512t1\",c:\"ECC Brainpool Standard Curves and Curve Generation\"},\"1.3.36.3.4\":{d:\"signatureScheme\",c:\"Teletrust algorithm\"},\"1.3.36.3.4.1\":{d:\"sigS_ISO9796-1\",c:\"Teletrust signature scheme\"},\"1.3.36.3.4.2\":{d:\"sigS_ISO9796-2\",c:\"Teletrust signature scheme\"},\"1.3.36.3.4.2.1\":{d:\"sigS_ISO9796-2Withred\",c:\"Teletrust signature scheme. Unsure what this is supposed to be\"},\"1.3.36.3.4.2.2\":{d:\"sigS_ISO9796-2Withrsa\",c:\"Teletrust signature scheme. Unsure what this is supposed to be\"},\"1.3.36.3.4.2.3\":{d:\"sigS_ISO9796-2Withrnd\",c:\"Teletrust signature scheme. 9796-2 with random number in padding field\"},\"1.3.36.4\":{d:\"attribute\",c:\"Teletrust attribute\"},\"1.3.36.5\":{d:\"policy\",c:\"Teletrust policy\"},\"1.3.36.6\":{d:\"api\",c:\"Teletrust API\"},\"1.3.36.6.1\":{d:\"manufacturer-specific_api\",c:\"Teletrust API\"},\"1.3.36.6.1.1\":{d:\"utimaco-api\",c:\"Teletrust API\"},\"1.3.36.6.2\":{d:\"functionality-specific_api\",c:\"Teletrust API\"},\"1.3.36.7\":{d:\"keymgmnt\",c:\"Teletrust key management\"},\"1.3.36.7.1\":{d:\"keyagree\",c:\"Teletrust key management\"},\"1.3.36.7.1.1\":{d:\"bsiPKE\",c:\"Teletrust key management\"},\"1.3.36.7.2\":{d:\"keytrans\",c:\"Teletrust key management\"},\"1.3.36.7.2.1\":{d:\"encISO9796-2Withrsa\",c:\"Teletrust key management. 9796-2 with key stored in hash field\"},\"1.3.36.8.1.1\":{d:\"Teletrust SigGConform policyIdentifier\",c:\"Teletrust policy\"},\"1.3.36.8.2.1\":{d:\"directoryService\",c:\"Teletrust extended key usage\"},\"1.3.36.8.3.1\":{d:\"dateOfCertGen\",c:\"Teletrust attribute\"},\"1.3.36.8.3.2\":{d:\"procuration\",c:\"Teletrust attribute\"},\"1.3.36.8.3.3\":{d:\"admission\",c:\"Teletrust attribute\"},\"1.3.36.8.3.4\":{d:\"monetaryLimit\",c:\"Teletrust attribute\"},\"1.3.36.8.3.5\":{d:\"declarationOfMajority\",c:\"Teletrust attribute\"},\"1.3.36.8.3.6\":{d:\"integratedCircuitCardSerialNumber\",c:\"Teletrust attribute\"},\"1.3.36.8.3.7\":{d:\"pKReference\",c:\"Teletrust attribute\"},\"1.3.36.8.3.8\":{d:\"restriction\",c:\"Teletrust attribute\"},\"1.3.36.8.3.9\":{d:\"retrieveIfAllowed\",c:\"Teletrust attribute\"},\"1.3.36.8.3.10\":{d:\"requestedCertificate\",c:\"Teletrust attribute\"},\"1.3.36.8.3.11\":{d:\"namingAuthorities\",c:\"Teletrust attribute\"},\"1.3.36.8.3.11.1\":{d:\"rechtWirtschaftSteuern\",c:\"Teletrust naming authorities\"},\"1.3.36.8.3.11.1.1\":{d:\"rechtsanwaeltin\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.2\":{d:\"rechtsanwalt\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.3\":{d:\"rechtsBeistand\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.4\":{d:\"steuerBeraterin\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.5\":{d:\"steuerBerater\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.6\":{d:\"steuerBevollmaechtigte\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.7\":{d:\"steuerBevollmaechtigter\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.8\":{d:\"notarin\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.9\":{d:\"notar\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.10\":{d:\"notarVertreterin\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.11\":{d:\"notarVertreter\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.12\":{d:\"notariatsVerwalterin\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.13\":{d:\"notariatsVerwalter\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.14\":{d:\"wirtschaftsPrueferin\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.15\":{d:\"wirtschaftsPruefer\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.16\":{d:\"vereidigteBuchprueferin\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.17\":{d:\"vereidigterBuchpruefer\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.18\":{d:\"patentAnwaeltin\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.11.1.19\":{d:\"patentAnwalt\",c:\"Teletrust ProfessionInfo\"},\"1.3.36.8.3.12\":{d:\"certInDirSince\",c:\"Teletrust OCSP attribute (obsolete)\",w:true},\"1.3.36.8.3.13\":{d:\"certHash\",c:\"Teletrust OCSP attribute\"},\"1.3.36.8.3.14\":{d:\"nameAtBirth\",c:\"Teletrust attribute\"},\"1.3.36.8.3.15\":{d:\"additionalInformation\",c:\"Teletrust attribute\"},\"1.3.36.8.4.1\":{d:\"personalData\",c:\"Teletrust OtherName attribute\"},\"1.3.36.8.4.8\":{d:\"restriction\",c:\"Teletrust attribute certificate attribute\"},\"1.3.36.8.5.1.1.1\":{d:\"rsaIndicateSHA1\",c:\"Teletrust signature algorithm\"},\"1.3.36.8.5.1.1.2\":{d:\"rsaIndicateRIPEMD160\",c:\"Teletrust signature algorithm\"},\"1.3.36.8.5.1.1.3\":{d:\"rsaWithSHA1\",c:\"Teletrust signature algorithm\"},\"1.3.36.8.5.1.1.4\":{d:\"rsaWithRIPEMD160\",c:\"Teletrust signature algorithm\"},\"1.3.36.8.5.1.2.1\":{d:\"dsaExtended\",c:\"Teletrust signature algorithm\"},\"1.3.36.8.5.1.2.2\":{d:\"dsaWithRIPEMD160\",c:\"Teletrust signature algorithm\"},\"1.3.36.8.6.1\":{d:\"cert\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.2\":{d:\"certRef\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.3\":{d:\"attrCert\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.4\":{d:\"attrRef\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.5\":{d:\"fileName\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.6\":{d:\"storageTime\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.7\":{d:\"fileSize\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.8\":{d:\"location\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.9\":{d:\"sigNumber\",c:\"Teletrust signature attributes\"},\"1.3.36.8.6.10\":{d:\"autoGen\",c:\"Teletrust signature attributes\"},\"1.3.36.8.7.1.1\":{d:\"ptAdobeILL\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.2\":{d:\"ptAmiPro\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.3\":{d:\"ptAutoCAD\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.4\":{d:\"ptBinary\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.5\":{d:\"ptBMP\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.6\":{d:\"ptCGM\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.7\":{d:\"ptCorelCRT\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.8\":{d:\"ptCorelDRW\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.9\":{d:\"ptCorelEXC\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.10\":{d:\"ptCorelPHT\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.11\":{d:\"ptDraw\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.12\":{d:\"ptDVI\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.13\":{d:\"ptEPS\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.14\":{d:\"ptExcel\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.15\":{d:\"ptGEM\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.16\":{d:\"ptGIF\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.17\":{d:\"ptHPGL\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.18\":{d:\"ptJPEG\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.19\":{d:\"ptKodak\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.20\":{d:\"ptLaTeX\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.21\":{d:\"ptLotus\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.22\":{d:\"ptLotusPIC\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.23\":{d:\"ptMacPICT\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.24\":{d:\"ptMacWord\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.25\":{d:\"ptMSWfD\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.26\":{d:\"ptMSWord\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.27\":{d:\"ptMSWord2\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.28\":{d:\"ptMSWord6\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.29\":{d:\"ptMSWord8\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.30\":{d:\"ptPDF\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.31\":{d:\"ptPIF\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.32\":{d:\"ptPostscript\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.33\":{d:\"ptRTF\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.34\":{d:\"ptSCITEX\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.35\":{d:\"ptTAR\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.36\":{d:\"ptTarga\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.37\":{d:\"ptTeX\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.38\":{d:\"ptText\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.39\":{d:\"ptTIFF\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.40\":{d:\"ptTIFF-FC\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.41\":{d:\"ptUID\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.42\":{d:\"ptUUEncode\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.43\":{d:\"ptWMF\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.44\":{d:\"ptWordPerfect\",c:\"Teletrust presentation types\"},\"1.3.36.8.7.1.45\":{d:\"ptWPGrph\",c:\"Teletrust presentation types\"},\"1.3.101.1.4\":{d:\"thawte-ce\",c:\"Thawte\"},\"1.3.101.1.4.1\":{d:\"strongExtranet\",c:\"Thawte certificate extension\"},\"1.3.101.110\":{d:\"curveX25519\",c:\"ECDH 25519 key agreement algorithm\"},\"1.3.101.111\":{d:\"curveX448\",c:\"ECDH 448 key agreement algorithm\"},\"1.3.101.112\":{d:\"curveEd25519\",c:\"EdDSA 25519 signature algorithm\"},\"1.3.101.113\":{d:\"curveEd448\",c:\"EdDSA 448 signature algorithm\"},\"1.3.101.114\":{d:\"curveEd25519ph\",c:\"EdDSA 25519 pre-hash signature algorithm\"},\"1.3.101.115\":{d:\"curveEd448ph\",c:\"EdDSA 448 pre-hash signature algorithm\"},\"1.3.132.0.1\":{d:\"sect163k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.2\":{d:\"sect163r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.3\":{d:\"sect239k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.4\":{d:\"sect113r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.5\":{d:\"sect113r2\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.6\":{d:\"secp112r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.7\":{d:\"secp112r2\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.8\":{d:\"secp160r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.9\":{d:\"secp160k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.10\":{d:\"secp256k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.15\":{d:\"sect163r2\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.16\":{d:\"sect283k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.17\":{d:\"sect283r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.22\":{d:\"sect131r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.23\":{d:\"sect131r2\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.24\":{d:\"sect193r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.25\":{d:\"sect193r2\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.26\":{d:\"sect233k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.27\":{d:\"sect233r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.28\":{d:\"secp128r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.29\":{d:\"secp128r2\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.30\":{d:\"secp160r2\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.31\":{d:\"secp192k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.32\":{d:\"secp224k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.33\":{d:\"secp224r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.34\":{d:\"secp384r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.35\":{d:\"secp521r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.36\":{d:\"sect409k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.37\":{d:\"sect409r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.38\":{d:\"sect571k1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.0.39\":{d:\"sect571r1\",c:\"SECG (Certicom) named elliptic curve\"},\"1.3.132.1.11.0\":{d:\"ecdhX963KDF-SHA224\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.11.1\":{d:\"ecdhX963KDF-SHA256\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.11.2\":{d:\"ecdhX963KDF-SHA384\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.11.3\":{d:\"ecdhX963KDF-SHA512\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.14.0\":{d:\"eccofactordhX963KDF-SHA224\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.14.1\":{d:\"eccofactordhX963KDF-SHA256\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.14.2\":{d:\"eccofactordhX963KDF-SHA384\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.14.3\":{d:\"eccofactordhX963KDF-SHA512\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.15.0\":{d:\"ecmqv-X963KDF-SHA224\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.15.1\":{d:\"ecmqv-X963KDF-SHA256\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.15.2\":{d:\"ecmqv-X963KDF-SHA384\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.132.1.15.3\":{d:\"ecmqv-X963KDF-SHA512\",c:\"SECG (Certicom) elliptic curve key agreement\"},\"1.3.133.16.840.9.44\":{d:\"x944\",c:\"X9.44\"},\"1.3.133.16.840.9.44.1\":{d:\"x944Components\",c:\"X9.44\"},\"1.3.133.16.840.9.44.1.1\":{d:\"x944Kdf2\",c:\"X9.44\"},\"1.3.133.16.840.9.44.1.2\":{d:\"x944Kdf3\",c:\"X9.44\"},\"1.3.133.16.840.9.84\":{d:\"x984\",c:\"X9.84\"},\"1.3.133.16.840.9.84.0\":{d:\"x984Module\",c:\"X9.84\"},\"1.3.133.16.840.9.84.0.1\":{d:\"x984Biometrics\",c:\"X9.84 Module\"},\"1.3.133.16.840.9.84.0.2\":{d:\"x984CMS\",c:\"X9.84 Module\"},\"1.3.133.16.840.9.84.0.3\":{d:\"x984Identifiers\",c:\"X9.84 Module\"},\"1.3.133.16.840.9.84.1\":{d:\"x984Biometric\",c:\"X9.84\"},\"1.3.133.16.840.9.84.1.0\":{d:\"biometricUnknownType\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.1\":{d:\"biometricBodyOdor\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.2\":{d:\"biometricDNA\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.3\":{d:\"biometricEarShape\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.4\":{d:\"biometricFacialFeatures\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.5\":{d:\"biometricFingerImage\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.6\":{d:\"biometricFingerGeometry\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.7\":{d:\"biometricHandGeometry\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.8\":{d:\"biometricIrisFeatures\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.9\":{d:\"biometricKeystrokeDynamics\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.10\":{d:\"biometricPalm\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.11\":{d:\"biometricRetina\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.12\":{d:\"biometricSignature\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.13\":{d:\"biometricSpeechPattern\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.14\":{d:\"biometricThermalImage\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.15\":{d:\"biometricVeinPattern\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.16\":{d:\"biometricThermalFaceImage\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.17\":{d:\"biometricThermalHandImage\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.18\":{d:\"biometricLipMovement\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.1.19\":{d:\"biometricGait\",c:\"X9.84 Biometric\"},\"1.3.133.16.840.9.84.3\":{d:\"x984MatchingMethod\",c:\"X9.84\"},\"1.3.133.16.840.9.84.4\":{d:\"x984FormatOwner\",c:\"X9.84\"},\"1.3.133.16.840.9.84.4.0\":{d:\"x984CbeffOwner\",c:\"X9.84 Format Owner\"},\"1.3.133.16.840.9.84.4.1\":{d:\"x984IbiaOwner\",c:\"X9.84 Format Owner\"},\"1.3.133.16.840.9.84.4.1.1\":{d:\"ibiaOwnerSAFLINK\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.2\":{d:\"ibiaOwnerBioscrypt\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.3\":{d:\"ibiaOwnerVisionics\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.4\":{d:\"ibiaOwnerInfineonTechnologiesAG\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.5\":{d:\"ibiaOwnerIridianTechnologies\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.6\":{d:\"ibiaOwnerVeridicom\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.7\":{d:\"ibiaOwnerCyberSIGN\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.8\":{d:\"ibiaOwnereCryp\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.9\":{d:\"ibiaOwnerFingerprintCardsAB\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.10\":{d:\"ibiaOwnerSecuGen\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.11\":{d:\"ibiaOwnerPreciseBiometric\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.12\":{d:\"ibiaOwnerIdentix\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.13\":{d:\"ibiaOwnerDERMALOG\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.14\":{d:\"ibiaOwnerLOGICO\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.15\":{d:\"ibiaOwnerNIST\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.16\":{d:\"ibiaOwnerA3Vision\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.17\":{d:\"ibiaOwnerNEC\",c:\"X9.84 IBIA Format Owner\"},\"1.3.133.16.840.9.84.4.1.18\":{d:\"ibiaOwnerSTMicroelectronics\",c:\"X9.84 IBIA Format Owner\"},\"1.3.158.36061701.0.0.0.1.2.2\":{d:\"qcpSK\",c:\"Slovakia Qualified Electronic Signature policies\"},\"2.5.4.0\":{d:\"objectClass\",c:\"X.520 DN component\"},\"2.5.4.1\":{d:\"aliasedEntryName\",c:\"X.520 DN component\"},\"2.5.4.2\":{d:\"knowledgeInformation\",c:\"X.520 DN component\"},\"2.5.4.3\":{d:\"commonName\",c:\"X.520 DN component\"},\"2.5.4.4\":{d:\"surname\",c:\"X.520 DN component\"},\"2.5.4.5\":{d:\"serialNumber\",c:\"X.520 DN component\"},\"2.5.4.6\":{d:\"countryName\",c:\"X.520 DN component\"},\"2.5.4.7\":{d:\"localityName\",c:\"X.520 DN component\"},\"2.5.4.7.1\":{d:\"collectiveLocalityName\",c:\"X.520 DN component\"},\"2.5.4.8\":{d:\"stateOrProvinceName\",c:\"X.520 DN component\"},\"2.5.4.8.1\":{d:\"collectiveStateOrProvinceName\",c:\"X.520 DN component\"},\"2.5.4.9\":{d:\"streetAddress\",c:\"X.520 DN component\"},\"2.5.4.9.1\":{d:\"collectiveStreetAddress\",c:\"X.520 DN component\"},\"2.5.4.10\":{d:\"organizationName\",c:\"X.520 DN component\"},\"2.5.4.10.1\":{d:\"collectiveOrganizationName\",c:\"X.520 DN component\"},\"2.5.4.11\":{d:\"organizationalUnitName\",c:\"X.520 DN component\"},\"2.5.4.11.1\":{d:\"collectiveOrganizationalUnitName\",c:\"X.520 DN component\"},\"2.5.4.12\":{d:\"title\",c:\"X.520 DN component\"},\"2.5.4.13\":{d:\"description\",c:\"X.520 DN component\"},\"2.5.4.14\":{d:\"searchGuide\",c:\"X.520 DN component\"},\"2.5.4.15\":{d:\"businessCategory\",c:\"X.520 DN component\"},\"2.5.4.16\":{d:\"postalAddress\",c:\"X.520 DN component\"},\"2.5.4.16.1\":{d:\"collectivePostalAddress\",c:\"X.520 DN component\"},\"2.5.4.17\":{d:\"postalCode\",c:\"X.520 DN component\"},\"2.5.4.17.1\":{d:\"collectivePostalCode\",c:\"X.520 DN component\"},\"2.5.4.18\":{d:\"postOfficeBox\",c:\"X.520 DN component\"},\"2.5.4.18.1\":{d:\"collectivePostOfficeBox\",c:\"X.520 DN component\"},\"2.5.4.19\":{d:\"physicalDeliveryOfficeName\",c:\"X.520 DN component\"},\"2.5.4.19.1\":{d:\"collectivePhysicalDeliveryOfficeName\",c:\"X.520 DN component\"},\"2.5.4.20\":{d:\"telephoneNumber\",c:\"X.520 DN component\"},\"2.5.4.20.1\":{d:\"collectiveTelephoneNumber\",c:\"X.520 DN component\"},\"2.5.4.21\":{d:\"telexNumber\",c:\"X.520 DN component\"},\"2.5.4.21.1\":{d:\"collectiveTelexNumber\",c:\"X.520 DN component\"},\"2.5.4.22\":{d:\"teletexTerminalIdentifier\",c:\"X.520 DN component\"},\"2.5.4.22.1\":{d:\"collectiveTeletexTerminalIdentifier\",c:\"X.520 DN component\"},\"2.5.4.23\":{d:\"facsimileTelephoneNumber\",c:\"X.520 DN component\"},\"2.5.4.23.1\":{d:\"collectiveFacsimileTelephoneNumber\",c:\"X.520 DN component\"},\"2.5.4.24\":{d:\"x121Address\",c:\"X.520 DN component\"},\"2.5.4.25\":{d:\"internationalISDNNumber\",c:\"X.520 DN component\"},\"2.5.4.25.1\":{d:\"collectiveInternationalISDNNumber\",c:\"X.520 DN component\"},\"2.5.4.26\":{d:\"registeredAddress\",c:\"X.520 DN component\"},\"2.5.4.27\":{d:\"destinationIndicator\",c:\"X.520 DN component\"},\"2.5.4.28\":{d:\"preferredDeliveryMehtod\",c:\"X.520 DN component\"},\"2.5.4.29\":{d:\"presentationAddress\",c:\"X.520 DN component\"},\"2.5.4.30\":{d:\"supportedApplicationContext\",c:\"X.520 DN component\"},\"2.5.4.31\":{d:\"member\",c:\"X.520 DN component\"},\"2.5.4.32\":{d:\"owner\",c:\"X.520 DN component\"},\"2.5.4.33\":{d:\"roleOccupant\",c:\"X.520 DN component\"},\"2.5.4.34\":{d:\"seeAlso\",c:\"X.520 DN component\"},\"2.5.4.35\":{d:\"userPassword\",c:\"X.520 DN component\"},\"2.5.4.36\":{d:\"userCertificate\",c:\"X.520 DN component\"},\"2.5.4.37\":{d:\"caCertificate\",c:\"X.520 DN component\"},\"2.5.4.38\":{d:\"authorityRevocationList\",c:\"X.520 DN component\"},\"2.5.4.39\":{d:\"certificateRevocationList\",c:\"X.520 DN component\"},\"2.5.4.40\":{d:\"crossCertificatePair\",c:\"X.520 DN component\"},\"2.5.4.41\":{d:\"name\",c:\"X.520 DN component\"},\"2.5.4.42\":{d:\"givenName\",c:\"X.520 DN component\"},\"2.5.4.43\":{d:\"initials\",c:\"X.520 DN component\"},\"2.5.4.44\":{d:\"generationQualifier\",c:\"X.520 DN component\"},\"2.5.4.45\":{d:\"uniqueIdentifier\",c:\"X.520 DN component\"},\"2.5.4.46\":{d:\"dnQualifier\",c:\"X.520 DN component\"},\"2.5.4.47\":{d:\"enhancedSearchGuide\",c:\"X.520 DN component\"},\"2.5.4.48\":{d:\"protocolInformation\",c:\"X.520 DN component\"},\"2.5.4.49\":{d:\"distinguishedName\",c:\"X.520 DN component\"},\"2.5.4.50\":{d:\"uniqueMember\",c:\"X.520 DN component\"},\"2.5.4.51\":{d:\"houseIdentifier\",c:\"X.520 DN component\"},\"2.5.4.52\":{d:\"supportedAlgorithms\",c:\"X.520 DN component\"},\"2.5.4.53\":{d:\"deltaRevocationList\",c:\"X.520 DN component\"},\"2.5.4.54\":{d:\"dmdName\",c:\"X.520 DN component\"},\"2.5.4.55\":{d:\"clearance\",c:\"X.520 DN component\"},\"2.5.4.56\":{d:\"defaultDirQop\",c:\"X.520 DN component\"},\"2.5.4.57\":{d:\"attributeIntegrityInfo\",c:\"X.520 DN component\"},\"2.5.4.58\":{d:\"attributeCertificate\",c:\"X.520 DN component\"},\"2.5.4.59\":{d:\"attributeCertificateRevocationList\",c:\"X.520 DN component\"},\"2.5.4.60\":{d:\"confKeyInfo\",c:\"X.520 DN component\"},\"2.5.4.61\":{d:\"aACertificate\",c:\"X.520 DN component\"},\"2.5.4.62\":{d:\"attributeDescriptorCertificate\",c:\"X.520 DN component\"},\"2.5.4.63\":{d:\"attributeAuthorityRevocationList\",c:\"X.520 DN component\"},\"2.5.4.64\":{d:\"familyInformation\",c:\"X.520 DN component\"},\"2.5.4.65\":{d:\"pseudonym\",c:\"X.520 DN component\"},\"2.5.4.66\":{d:\"communicationsService\",c:\"X.520 DN component\"},\"2.5.4.67\":{d:\"communicationsNetwork\",c:\"X.520 DN component\"},\"2.5.4.68\":{d:\"certificationPracticeStmt\",c:\"X.520 DN component\"},\"2.5.4.69\":{d:\"certificatePolicy\",c:\"X.520 DN component\"},\"2.5.4.70\":{d:\"pkiPath\",c:\"X.520 DN component\"},\"2.5.4.71\":{d:\"privPolicy\",c:\"X.520 DN component\"},\"2.5.4.72\":{d:\"role\",c:\"X.520 DN component\"},\"2.5.4.73\":{d:\"delegationPath\",c:\"X.520 DN component\"},\"2.5.4.74\":{d:\"protPrivPolicy\",c:\"X.520 DN component\"},\"2.5.4.75\":{d:\"xMLPrivilegeInfo\",c:\"X.520 DN component\"},\"2.5.4.76\":{d:\"xmlPrivPolicy\",c:\"X.520 DN component\"},\"2.5.4.77\":{d:\"uuidpair\",c:\"X.520 DN component\"},\"2.5.4.78\":{d:\"tagOid\",c:\"X.520 DN component\"},\"2.5.4.79\":{d:\"uiiFormat\",c:\"X.520 DN component\"},\"2.5.4.80\":{d:\"uiiInUrh\",c:\"X.520 DN component\"},\"2.5.4.81\":{d:\"contentUrl\",c:\"X.520 DN component\"},\"2.5.4.82\":{d:\"permission\",c:\"X.520 DN component\"},\"2.5.4.83\":{d:\"uri\",c:\"X.520 DN component\"},\"2.5.4.84\":{d:\"pwdAttribute\",c:\"X.520 DN component\"},\"2.5.4.85\":{d:\"userPwd\",c:\"X.520 DN component\"},\"2.5.4.86\":{d:\"urn\",c:\"X.520 DN component\"},\"2.5.4.87\":{d:\"url\",c:\"X.520 DN component\"},\"2.5.4.88\":{d:\"utmCoordinates\",c:\"X.520 DN component\"},\"2.5.4.89\":{d:\"urnC\",c:\"X.520 DN component\"},\"2.5.4.90\":{d:\"uii\",c:\"X.520 DN component\"},\"2.5.4.91\":{d:\"epc\",c:\"X.520 DN component\"},\"2.5.4.92\":{d:\"tagAfi\",c:\"X.520 DN component\"},\"2.5.4.93\":{d:\"epcFormat\",c:\"X.520 DN component\"},\"2.5.4.94\":{d:\"epcInUrn\",c:\"X.520 DN component\"},\"2.5.4.95\":{d:\"ldapUrl\",c:\"X.520 DN component\"},\"2.5.4.96\":{d:\"tagLocation\",c:\"X.520 DN component\"},\"2.5.4.97\":{d:\"organizationIdentifier\",c:\"X.520 DN component\"},\"2.5.4.98\":{d:\"countryCode3c\",c:\"X.520 DN component\"},\"2.5.4.99\":{d:\"countryCode3n\",c:\"X.520 DN component\"},\"2.5.4.100\":{d:\"dnsName\",c:\"X.520 DN component\"},\"2.5.4.101\":{d:\"eepkCertificateRevocationList\",c:\"X.520 DN component\"},\"2.5.4.102\":{d:\"eeAttrCertificateRevocationList\",c:\"X.520 DN component\"},\"2.5.4.103\":{d:\"supportedPublicKeyAlgorithms\",c:\"X.520 DN component\"},\"2.5.4.104\":{d:\"intEmail\",c:\"X.520 DN component\"},\"2.5.4.105\":{d:\"jid\",c:\"X.520 DN component\"},\"2.5.4.106\":{d:\"objectIdentifier\",c:\"X.520 DN component\"},\"2.5.6.0\":{d:\"top\",c:\"X.520 objectClass\"},\"2.5.6.1\":{d:\"alias\",c:\"X.520 objectClass\"},\"2.5.6.2\":{d:\"country\",c:\"X.520 objectClass\"},\"2.5.6.3\":{d:\"locality\",c:\"X.520 objectClass\"},\"2.5.6.4\":{d:\"organization\",c:\"X.520 objectClass\"},\"2.5.6.5\":{d:\"organizationalUnit\",c:\"X.520 objectClass\"},\"2.5.6.6\":{d:\"person\",c:\"X.520 objectClass\"},\"2.5.6.7\":{d:\"organizationalPerson\",c:\"X.520 objectClass\"},\"2.5.6.8\":{d:\"organizationalRole\",c:\"X.520 objectClass\"},\"2.5.6.9\":{d:\"groupOfNames\",c:\"X.520 objectClass\"},\"2.5.6.10\":{d:\"residentialPerson\",c:\"X.520 objectClass\"},\"2.5.6.11\":{d:\"applicationProcess\",c:\"X.520 objectClass\"},\"2.5.6.12\":{d:\"applicationEntity\",c:\"X.520 objectClass\"},\"2.5.6.13\":{d:\"dSA\",c:\"X.520 objectClass\"},\"2.5.6.14\":{d:\"device\",c:\"X.520 objectClass\"},\"2.5.6.15\":{d:\"strongAuthenticationUser\",c:\"X.520 objectClass\"},\"2.5.6.16\":{d:\"certificateAuthority\",c:\"X.520 objectClass\"},\"2.5.6.17\":{d:\"groupOfUniqueNames\",c:\"X.520 objectClass\"},\"2.5.6.21\":{d:\"pkiUser\",c:\"X.520 objectClass\"},\"2.5.6.22\":{d:\"pkiCA\",c:\"X.520 objectClass\"},\"2.5.8.1.1\":{d:\"rsa\",c:\"X.500 algorithms. Ambiguous, since no padding rules specified\",w:true},\"2.5.29.1\":{d:\"authorityKeyIdentifier\",c:\"X.509 extension. Deprecated, use 2 5 29 35 instead\",w:true},\"2.5.29.2\":{d:\"keyAttributes\",c:\"X.509 extension. Obsolete, use keyUsage/extKeyUsage instead\",w:true},\"2.5.29.3\":{d:\"certificatePolicies\",c:\"X.509 extension. Deprecated, use 2 5 29 32 instead\",w:true},\"2.5.29.4\":{d:\"keyUsageRestriction\",c:\"X.509 extension. Obsolete, use keyUsage/extKeyUsage instead\",w:true},\"2.5.29.5\":{d:\"policyMapping\",c:\"X.509 extension. Deprecated, use 2 5 29 33 instead\",w:true},\"2.5.29.6\":{d:\"subtreesConstraint\",c:\"X.509 extension. Obsolete, use nameConstraints instead\",w:true},\"2.5.29.7\":{d:\"subjectAltName\",c:\"X.509 extension. Deprecated, use 2 5 29 17 instead\",w:true},\"2.5.29.8\":{d:\"issuerAltName\",c:\"X.509 extension. Deprecated, use 2 5 29 18 instead\",w:true},\"2.5.29.9\":{d:\"subjectDirectoryAttributes\",c:\"X.509 extension\"},\"2.5.29.10\":{d:\"basicConstraints\",c:\"X.509 extension. Deprecated, use 2 5 29 19 instead\",w:true},\"2.5.29.11\":{d:\"nameConstraints\",c:\"X.509 extension. Deprecated, use 2 5 29 30 instead\",w:true},\"2.5.29.12\":{d:\"policyConstraints\",c:\"X.509 extension. Deprecated, use 2 5 29 36 instead\",w:true},\"2.5.29.13\":{d:\"basicConstraints\",c:\"X.509 extension. Deprecated, use 2 5 29 19 instead\",w:true},\"2.5.29.14\":{d:\"subjectKeyIdentifier\",c:\"X.509 extension\"},\"2.5.29.15\":{d:\"keyUsage\",c:\"X.509 extension\"},\"2.5.29.16\":{d:\"privateKeyUsagePeriod\",c:\"X.509 extension\"},\"2.5.29.17\":{d:\"subjectAltName\",c:\"X.509 extension\"},\"2.5.29.18\":{d:\"issuerAltName\",c:\"X.509 extension\"},\"2.5.29.19\":{d:\"basicConstraints\",c:\"X.509 extension\"},\"2.5.29.20\":{d:\"cRLNumber\",c:\"X.509 extension\"},\"2.5.29.21\":{d:\"cRLReason\",c:\"X.509 extension\"},\"2.5.29.22\":{d:\"expirationDate\",c:\"X.509 extension. Deprecated, alternative OID uncertain\",w:true},\"2.5.29.23\":{d:\"instructionCode\",c:\"X.509 extension\"},\"2.5.29.24\":{d:\"invalidityDate\",c:\"X.509 extension\"},\"2.5.29.25\":{d:\"cRLDistributionPoints\",c:\"X.509 extension. Deprecated, use 2 5 29 31 instead\",w:true},\"2.5.29.26\":{d:\"issuingDistributionPoint\",c:\"X.509 extension. Deprecated, use 2 5 29 28 instead\",w:true},\"2.5.29.27\":{d:\"deltaCRLIndicator\",c:\"X.509 extension\"},\"2.5.29.28\":{d:\"issuingDistributionPoint\",c:\"X.509 extension\"},\"2.5.29.29\":{d:\"certificateIssuer\",c:\"X.509 extension\"},\"2.5.29.30\":{d:\"nameConstraints\",c:\"X.509 extension\"},\"2.5.29.31\":{d:\"cRLDistributionPoints\",c:\"X.509 extension\"},\"2.5.29.32\":{d:\"certificatePolicies\",c:\"X.509 extension\"},\"2.5.29.32.0\":{d:\"anyPolicy\",c:\"X.509 certificate policy\"},\"2.5.29.33\":{d:\"policyMappings\",c:\"X.509 extension\"},\"2.5.29.34\":{d:\"policyConstraints\",c:\"X.509 extension. Deprecated, use 2 5 29 36 instead\",w:true},\"2.5.29.35\":{d:\"authorityKeyIdentifier\",c:\"X.509 extension\"},\"2.5.29.36\":{d:\"policyConstraints\",c:\"X.509 extension\"},\"2.5.29.37\":{d:\"extKeyUsage\",c:\"X.509 extension\"},\"2.5.29.37.0\":{d:\"anyExtendedKeyUsage\",c:\"X.509 extended key usage\"},\"2.5.29.38\":{d:\"authorityAttributeIdentifier\",c:\"X.509 extension\"},\"2.5.29.39\":{d:\"roleSpecCertIdentifier\",c:\"X.509 extension\"},\"2.5.29.40\":{d:\"cRLStreamIdentifier\",c:\"X.509 extension\"},\"2.5.29.41\":{d:\"basicAttConstraints\",c:\"X.509 extension\"},\"2.5.29.42\":{d:\"delegatedNameConstraints\",c:\"X.509 extension\"},\"2.5.29.43\":{d:\"timeSpecification\",c:\"X.509 extension\"},\"2.5.29.44\":{d:\"cRLScope\",c:\"X.509 extension\"},\"2.5.29.45\":{d:\"statusReferrals\",c:\"X.509 extension\"},\"2.5.29.46\":{d:\"freshestCRL\",c:\"X.509 extension\"},\"2.5.29.47\":{d:\"orderedList\",c:\"X.509 extension\"},\"2.5.29.48\":{d:\"attributeDescriptor\",c:\"X.509 extension\"},\"2.5.29.49\":{d:\"userNotice\",c:\"X.509 extension\"},\"2.5.29.50\":{d:\"sOAIdentifier\",c:\"X.509 extension\"},\"2.5.29.51\":{d:\"baseUpdateTime\",c:\"X.509 extension\"},\"2.5.29.52\":{d:\"acceptableCertPolicies\",c:\"X.509 extension\"},\"2.5.29.53\":{d:\"deltaInfo\",c:\"X.509 extension\"},\"2.5.29.54\":{d:\"inhibitAnyPolicy\",c:\"X.509 extension\"},\"2.5.29.55\":{d:\"targetInformation\",c:\"X.509 extension\"},\"2.5.29.56\":{d:\"noRevAvail\",c:\"X.509 extension\"},\"2.5.29.57\":{d:\"acceptablePrivilegePolicies\",c:\"X.509 extension\"},\"2.5.29.58\":{d:\"toBeRevoked\",c:\"X.509 extension\"},\"2.5.29.59\":{d:\"revokedGroups\",c:\"X.509 extension\"},\"2.5.29.60\":{d:\"expiredCertsOnCRL\",c:\"X.509 extension\"},\"2.5.29.61\":{d:\"indirectIssuer\",c:\"X.509 extension\"},\"2.5.29.62\":{d:\"noAssertion\",c:\"X.509 extension\"},\"2.5.29.63\":{d:\"aAissuingDistributionPoint\",c:\"X.509 extension\"},\"2.5.29.64\":{d:\"issuedOnBehalfOf\",c:\"X.509 extension\"},\"2.5.29.65\":{d:\"singleUse\",c:\"X.509 extension\"},\"2.5.29.66\":{d:\"groupAC\",c:\"X.509 extension\"},\"2.5.29.67\":{d:\"allowedAttAss\",c:\"X.509 extension\"},\"2.5.29.68\":{d:\"attributeMappings\",c:\"X.509 extension\"},\"2.5.29.69\":{d:\"holderNameConstraints\",c:\"X.509 extension\"},\"2.16.578.1.26.1.3.1\":{d:\"privateKeySmartCard\",c:\"Norway Buypass CA policy\"},\"2.16.578.1.26.1.3.2\":{d:\"privateKeySoftToken\",c:\"Norway Buypass CA policy\"},\"2.16.578.1.26.1.3.3\":{d:\"sslEvident. Also assigned as BuyPass EV policy\",c:\"Norway Buypass CA policy\"},\"2.16.578.1.26.1.3.4\":{d:\"sslBusinessPlus\",c:\"Norway Buypass CA policy\"},\"2.16.578.1.26.1.3.5\":{d:\"privateKeyHardToken\",c:\"Norway Buypass CA policy\"},\"2.16.578.1.26.1.3.6\":{d:\"privateKeyHSM\",c:\"Norway Buypass CA policy\"},\"2.16.724.1.2.2.4.1\":{d:\"personalDataInfo\",c:\"Spanish Government PKI?\"},\"2.16.840.1.101.2.1.1.1\":{d:\"sdnsSignatureAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.2\":{d:\"fortezzaSignatureAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicSignatureAlgorithm, this OID is better known as dsaWithSHA-1.\"},\"2.16.840.1.101.2.1.1.3\":{d:\"sdnsConfidentialityAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.4\":{d:\"fortezzaConfidentialityAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicConfidentialityAlgorithm\"},\"2.16.840.1.101.2.1.1.5\":{d:\"sdnsIntegrityAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.6\":{d:\"fortezzaIntegrityAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicIntegrityAlgorithm\"},\"2.16.840.1.101.2.1.1.7\":{d:\"sdnsTokenProtectionAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.8\":{d:\"fortezzaTokenProtectionAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly know as mosaicTokenProtectionAlgorithm\"},\"2.16.840.1.101.2.1.1.9\":{d:\"sdnsKeyManagementAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.10\":{d:\"fortezzaKeyManagementAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyManagementAlgorithm\"},\"2.16.840.1.101.2.1.1.11\":{d:\"sdnsKMandSigAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.12\":{d:\"fortezzaKMandSigAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandSigAlgorithm\"},\"2.16.840.1.101.2.1.1.13\":{d:\"suiteASignatureAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.14\":{d:\"suiteAConfidentialityAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.15\":{d:\"suiteAIntegrityAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.16\":{d:\"suiteATokenProtectionAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.17\":{d:\"suiteAKeyManagementAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.18\":{d:\"suiteAKMandSigAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.19\":{d:\"fortezzaUpdatedSigAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedSigAlgorithm\"},\"2.16.840.1.101.2.1.1.20\":{d:\"fortezzaKMandUpdSigAlgorithms\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicKMandUpdSigAlgorithms\"},\"2.16.840.1.101.2.1.1.21\":{d:\"fortezzaUpdatedIntegAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicUpdatedIntegAlgorithm\"},\"2.16.840.1.101.2.1.1.22\":{d:\"keyExchangeAlgorithm\",c:\"SDN.700 INFOSEC algorithms. Formerly known as mosaicKeyEncryptionAlgorithm\"},\"2.16.840.1.101.2.1.1.23\":{d:\"fortezzaWrap80Algorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.1.24\":{d:\"kEAKeyEncryptionAlgorithm\",c:\"SDN.700 INFOSEC algorithms\"},\"2.16.840.1.101.2.1.2.1\":{d:\"rfc822MessageFormat\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.2\":{d:\"emptyContent\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.3\":{d:\"cspContentType\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.42\":{d:\"mspRev3ContentType\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.48\":{d:\"mspContentType\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.49\":{d:\"mspRekeyAgentProtocol\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.50\":{d:\"mspMMP\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.66\":{d:\"mspRev3-1ContentType\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.72\":{d:\"forwardedMSPMessageBodyPart\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.73\":{d:\"mspForwardedMessageParameters\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.74\":{d:\"forwardedCSPMsgBodyPart\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.75\":{d:\"cspForwardedMessageParameters\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.76\":{d:\"mspMMP2\",c:\"SDN.700 INFOSEC format\"},\"2.16.840.1.101.2.1.2.78.2\":{d:\"encryptedKeyPackage\",c:\"SDN.700 INFOSEC format and RFC 6032\"},\"2.16.840.1.101.2.1.2.78.3\":{d:\"keyPackageReceipt\",c:\"SDN.700 INFOSEC format and RFC 7191\"},\"2.16.840.1.101.2.1.2.78.6\":{d:\"keyPackageError\",c:\"SDN.700 INFOSEC format and RFC 7191\"},\"2.16.840.1.101.2.1.3.1\":{d:\"sdnsSecurityPolicy\",c:\"SDN.700 INFOSEC policy\"},\"2.16.840.1.101.2.1.3.2\":{d:\"sdnsPRBAC\",c:\"SDN.700 INFOSEC policy\"},\"2.16.840.1.101.2.1.3.3\":{d:\"mosaicPRBAC\",c:\"SDN.700 INFOSEC policy\"},\"2.16.840.1.101.2.1.3.10\":{d:\"siSecurityPolicy\",c:\"SDN.700 INFOSEC policy\"},\"2.16.840.1.101.2.1.3.10.0\":{d:\"siNASP\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.1\":{d:\"siELCO\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.2\":{d:\"siTK\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.3\":{d:\"siDSAP\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.4\":{d:\"siSSSS\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.5\":{d:\"siDNASP\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.6\":{d:\"siBYEMAN\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.7\":{d:\"siREL-US\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.8\":{d:\"siREL-AUS\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.9\":{d:\"siREL-CAN\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.10\":{d:\"siREL_UK\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.11\":{d:\"siREL-NZ\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.10.12\":{d:\"siGeneric\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.11\":{d:\"genser\",c:\"SDN.700 INFOSEC policy\"},\"2.16.840.1.101.2.1.3.11.0\":{d:\"genserNations\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.11.1\":{d:\"genserComsec\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.11.2\":{d:\"genserAcquisition\",c:\"SDN.700 INFOSEC policy (obsolete)\",w:true},\"2.16.840.1.101.2.1.3.11.3\":{d:\"genserSecurityCategories\",c:\"SDN.700 INFOSEC policy\"},\"2.16.840.1.101.2.1.3.11.3.0\":{d:\"genserTagSetName\",c:\"SDN.700 INFOSEC GENSER policy\"},\"2.16.840.1.101.2.1.3.12\":{d:\"defaultSecurityPolicy\",c:\"SDN.700 INFOSEC policy\"},\"2.16.840.1.101.2.1.3.13\":{d:\"capcoMarkings\",c:\"SDN.700 INFOSEC policy\"},\"2.16.840.1.101.2.1.3.13.0\":{d:\"capcoSecurityCategories\",c:\"SDN.700 INFOSEC policy CAPCO markings\"},\"2.16.840.1.101.2.1.3.13.0.1\":{d:\"capcoTagSetName1\",c:\"SDN.700 INFOSEC policy CAPCO markings\"},\"2.16.840.1.101.2.1.3.13.0.2\":{d:\"capcoTagSetName2\",c:\"SDN.700 INFOSEC policy CAPCO markings\"},\"2.16.840.1.101.2.1.3.13.0.3\":{d:\"capcoTagSetName3\",c:\"SDN.700 INFOSEC policy CAPCO markings\"},\"2.16.840.1.101.2.1.3.13.0.4\":{d:\"capcoTagSetName4\",c:\"SDN.700 INFOSEC policy CAPCO markings\"},\"2.16.840.1.101.2.1.5.1\":{d:\"sdnsKeyManagementCertificate\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.2\":{d:\"sdnsUserSignatureCertificate\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.3\":{d:\"sdnsKMandSigCertificate\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.4\":{d:\"fortezzaKeyManagementCertificate\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.5\":{d:\"fortezzaKMandSigCertificate\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.6\":{d:\"fortezzaUserSignatureCertificate\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.7\":{d:\"fortezzaCASignatureCertificate\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.8\":{d:\"sdnsCASignatureCertificate\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.10\":{d:\"auxiliaryVector\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.11\":{d:\"mlReceiptPolicy\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.12\":{d:\"mlMembership\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.13\":{d:\"mlAdministrators\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.14\":{d:\"alid\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.20\":{d:\"janUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.21\":{d:\"febUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.22\":{d:\"marUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.23\":{d:\"aprUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.24\":{d:\"mayUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.25\":{d:\"junUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.26\":{d:\"julUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.27\":{d:\"augUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.28\":{d:\"sepUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.29\":{d:\"octUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.30\":{d:\"novUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.31\":{d:\"decUKMs\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.40\":{d:\"metaSDNSckl\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.41\":{d:\"sdnsCKL\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.42\":{d:\"metaSDNSsignatureCKL\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.43\":{d:\"sdnsSignatureCKL\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.44\":{d:\"sdnsCertificateRevocationList\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.45\":{d:\"fortezzaCertificateRevocationList\",c:\"SDN.700 INFOSEC attributes (superseded)\",w:true},\"2.16.840.1.101.2.1.5.46\":{d:\"fortezzaCKL\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.47\":{d:\"alExemptedAddressProcessor\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.48\":{d:\"guard\",c:\"SDN.700 INFOSEC attributes (obsolete)\",w:true},\"2.16.840.1.101.2.1.5.49\":{d:\"algorithmsSupported\",c:\"SDN.700 INFOSEC attributes (obsolete)\",w:true},\"2.16.840.1.101.2.1.5.50\":{d:\"suiteAKeyManagementCertificate\",c:\"SDN.700 INFOSEC attributes (obsolete)\",w:true},\"2.16.840.1.101.2.1.5.51\":{d:\"suiteAKMandSigCertificate\",c:\"SDN.700 INFOSEC attributes (obsolete)\",w:true},\"2.16.840.1.101.2.1.5.52\":{d:\"suiteAUserSignatureCertificate\",c:\"SDN.700 INFOSEC attributes (obsolete)\",w:true},\"2.16.840.1.101.2.1.5.53\":{d:\"prbacInfo\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.54\":{d:\"prbacCAConstraints\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.55\":{d:\"sigOrKMPrivileges\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.56\":{d:\"commPrivileges\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.57\":{d:\"labeledAttribute\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.58\":{d:\"policyInformationFile\",c:\"SDN.700 INFOSEC attributes (obsolete)\",w:true},\"2.16.840.1.101.2.1.5.59\":{d:\"secPolicyInformationFile\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.60\":{d:\"cAClearanceConstraint\",c:\"SDN.700 INFOSEC attributes\"},\"2.16.840.1.101.2.1.5.65\":{d:\"keyPkgIdAndReceiptReq\",c:\"SDN.700 INFOSEC attributes and RFC 7191\"},\"2.16.840.1.101.2.1.5.66\":{d:\"contentDecryptKeyID\",c:\"SDN.700 INFOSEC attributes and RFC 6032\"},\"2.16.840.1.101.2.1.5.70\":{d:\"kpCrlPointers\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.5.71\":{d:\"kpKeyProvinceV2\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.5.72\":{d:\"kpManifest\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.7.1\":{d:\"cspExtns\",c:\"SDN.700 INFOSEC extensions\"},\"2.16.840.1.101.2.1.7.1.0\":{d:\"cspCsExtn\",c:\"SDN.700 INFOSEC extensions\"},\"2.16.840.1.101.2.1.8.1\":{d:\"mISSISecurityCategories\",c:\"SDN.700 INFOSEC security category\"},\"2.16.840.1.101.2.1.8.2\":{d:\"standardSecurityLabelPrivileges\",c:\"SDN.700 INFOSEC security category\"},\"2.16.840.1.101.2.1.8.3.1\":{d:\"enumeratedPermissiveAttrs\",c:\"SDN.700 INFOSEC security category from RFC 7906\"},\"2.16.840.1.101.2.1.8.3.3\":{d:\"informativeAttrs\",c:\"SDN.700 INFOSEC security category from RFC 7906\"},\"2.16.840.1.101.2.1.8.3.4\":{d:\"enumeratedRestrictiveAttrs\",c:\"SDN.700 INFOSEC security category from RFC 7906\"},\"2.16.840.1.101.2.1.10.1\":{d:\"sigPrivileges\",c:\"SDN.700 INFOSEC privileges\"},\"2.16.840.1.101.2.1.10.2\":{d:\"kmPrivileges\",c:\"SDN.700 INFOSEC privileges\"},\"2.16.840.1.101.2.1.10.3\":{d:\"namedTagSetPrivilege\",c:\"SDN.700 INFOSEC privileges\"},\"2.16.840.1.101.2.1.11.1\":{d:\"ukDemo\",c:\"SDN.700 INFOSEC certificate policy\"},\"2.16.840.1.101.2.1.11.2\":{d:\"usDODClass2\",c:\"SDN.700 INFOSEC certificate policy\"},\"2.16.840.1.101.2.1.11.3\":{d:\"usMediumPilot\",c:\"SDN.700 INFOSEC certificate policy\"},\"2.16.840.1.101.2.1.11.4\":{d:\"usDODClass4\",c:\"SDN.700 INFOSEC certificate policy\"},\"2.16.840.1.101.2.1.11.5\":{d:\"usDODClass3\",c:\"SDN.700 INFOSEC certificate policy\"},\"2.16.840.1.101.2.1.11.6\":{d:\"usDODClass5\",c:\"SDN.700 INFOSEC certificate policy\"},\"2.16.840.1.101.2.1.12.0\":{d:\"testSecurityPolicy\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.1\":{d:\"tsp1\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.1.0\":{d:\"tsp1SecurityCategories\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.1.0.0\":{d:\"tsp1TagSetZero\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.1.0.1\":{d:\"tsp1TagSetOne\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.1.0.2\":{d:\"tsp1TagSetTwo\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.2\":{d:\"tsp2\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.2.0\":{d:\"tsp2SecurityCategories\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.2.0.0\":{d:\"tsp2TagSetZero\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.2.0.1\":{d:\"tsp2TagSetOne\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.2.0.2\":{d:\"tsp2TagSetTwo\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.3\":{d:\"kafka\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.3.0\":{d:\"kafkaSecurityCategories\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.3.0.1\":{d:\"kafkaTagSetName1\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.3.0.2\":{d:\"kafkaTagSetName2\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.0.3.0.3\":{d:\"kafkaTagSetName3\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.12.1.1\":{d:\"tcp1\",c:\"SDN.700 INFOSEC test objects\"},\"2.16.840.1.101.2.1.13.1\":{d:\"kmaKeyAlgorithm\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.3\":{d:\"kmaTSECNomenclature\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.5\":{d:\"kmaKeyDistPeriod\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.6\":{d:\"kmaKeyValidityPeriod\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.7\":{d:\"kmaKeyDuration\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.11\":{d:\"kmaSplitID\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.12\":{d:\"kmaKeyPkgType\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.13\":{d:\"kmaKeyPurpose\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.14\":{d:\"kmaKeyUse\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.15\":{d:\"kmaTransportKey\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.16\":{d:\"kmaKeyPkgReceiversV2\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.19\":{d:\"kmaOtherCertFormats\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.20\":{d:\"kmaUsefulCerts\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.21\":{d:\"kmaKeyWrapAlgorithm\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.13.22\":{d:\"kmaSigUsageV3\",c:\"SDN.700 INFOSEC attributes and RFC 7906\"},\"2.16.840.1.101.2.1.16.0\":{d:\"dn\",c:\"SDN.700 INFOSEC attributes and RFC 7191\"},\"2.16.840.1.101.2.1.22\":{d:\"errorCodes\",c:\"RFC 7906 key attribute error codes\"},\"2.16.840.1.101.2.1.22.1\":{d:\"missingKeyType\",c:\"RFC 7906 key attribute error codes\"},\"2.16.840.1.101.2.1.22.2\":{d:\"privacyMarkTooLong\",c:\"RFC 7906 key attribute error codes\"},\"2.16.840.1.101.2.1.22.3\":{d:\"unrecognizedSecurityPolicy\",c:\"RFC 7906 key attribute error codes\"},\"2.16.840.1.101.3.1\":{d:\"slabel\",c:\"CSOR GAK\",w:true},\"2.16.840.1.101.3.2\":{d:\"pki\",c:\"NIST\",w:true},\"2.16.840.1.101.3.2.1\":{d:\"NIST policyIdentifier\",c:\"NIST policies\",w:true},\"2.16.840.1.101.3.2.1.3.1\":{d:\"fbcaRudimentaryPolicy\",c:\"Federal Bridge CA Policy\"},\"2.16.840.1.101.3.2.1.3.2\":{d:\"fbcaBasicPolicy\",c:\"Federal Bridge CA Policy\"},\"2.16.840.1.101.3.2.1.3.3\":{d:\"fbcaMediumPolicy\",c:\"Federal Bridge CA Policy\"},\"2.16.840.1.101.3.2.1.3.4\":{d:\"fbcaHighPolicy\",c:\"Federal Bridge CA Policy\"},\"2.16.840.1.101.3.2.1.48.1\":{d:\"nistTestPolicy1\",c:\"NIST PKITS policies\"},\"2.16.840.1.101.3.2.1.48.2\":{d:\"nistTestPolicy2\",c:\"NIST PKITS policies\"},\"2.16.840.1.101.3.2.1.48.3\":{d:\"nistTestPolicy3\",c:\"NIST PKITS policies\"},\"2.16.840.1.101.3.2.1.48.4\":{d:\"nistTestPolicy4\",c:\"NIST PKITS policies\"},\"2.16.840.1.101.3.2.1.48.5\":{d:\"nistTestPolicy5\",c:\"NIST PKITS policies\"},\"2.16.840.1.101.3.2.1.48.6\":{d:\"nistTestPolicy6\",c:\"NIST PKITS policies\"},\"2.16.840.1.101.3.2.2\":{d:\"gak\",c:\"CSOR GAK extended key usage\",w:true},\"2.16.840.1.101.3.2.2.1\":{d:\"kRAKey\",c:\"CSOR GAK extended key usage\",w:true},\"2.16.840.1.101.3.2.3\":{d:\"extensions\",c:\"CSOR GAK extensions\",w:true},\"2.16.840.1.101.3.2.3.1\":{d:\"kRTechnique\",c:\"CSOR GAK extensions\",w:true},\"2.16.840.1.101.3.2.3.2\":{d:\"kRecoveryCapable\",c:\"CSOR GAK extensions\",w:true},\"2.16.840.1.101.3.2.3.3\":{d:\"kR\",c:\"CSOR GAK extensions\",w:true},\"2.16.840.1.101.3.2.4\":{d:\"keyRecoverySchemes\",c:\"CSOR GAK\",w:true},\"2.16.840.1.101.3.2.5\":{d:\"krapola\",c:\"CSOR GAK\",w:true},\"2.16.840.1.101.3.3\":{d:\"arpa\",c:\"CSOR GAK\",w:true},\"2.16.840.1.101.3.4\":{d:\"nistAlgorithm\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1\":{d:\"aes\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.1\":{d:\"aes128-ECB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.2\":{d:\"aes128-CBC\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.3\":{d:\"aes128-OFB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.4\":{d:\"aes128-CFB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.5\":{d:\"aes128-wrap\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.6\":{d:\"aes128-GCM\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.7\":{d:\"aes128-CCM\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.8\":{d:\"aes128-wrap-pad\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.9\":{d:\"aes128-GMAC\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.21\":{d:\"aes192-ECB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.22\":{d:\"aes192-CBC\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.23\":{d:\"aes192-OFB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.24\":{d:\"aes192-CFB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.25\":{d:\"aes192-wrap\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.26\":{d:\"aes192-GCM\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.27\":{d:\"aes192-CCM\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.28\":{d:\"aes192-wrap-pad\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.29\":{d:\"aes192-GMAC\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.41\":{d:\"aes256-ECB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.42\":{d:\"aes256-CBC\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.43\":{d:\"aes256-OFB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.44\":{d:\"aes256-CFB\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.45\":{d:\"aes256-wrap\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.46\":{d:\"aes256-GCM\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.47\":{d:\"aes256-CCM\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.48\":{d:\"aes256-wrap-pad\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.1.49\":{d:\"aes256-GMAC\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2\":{d:\"hashAlgos\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.1\":{d:\"sha-256\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.2\":{d:\"sha-384\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.3\":{d:\"sha-512\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.4\":{d:\"sha-224\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.7\":{d:\"sha3-224\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.8\":{d:\"sha3-256\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.9\":{d:\"sha3-384\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.10\":{d:\"sha3-512\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.11\":{d:\"shake128\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.12\":{d:\"shake256\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.17\":{d:\"shake128len\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.18\":{d:\"shake256len\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.19\":{d:\"kmacShake128\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.2.20\":{d:\"kmacShake256\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.3.1\":{d:\"dsaWithSha224\",c:\"NIST Algorithm\"},\"2.16.840.1.101.3.4.3.2\":{d:\"dsaWithSha256\",c:\"NIST Algorithm\"},\"2.16.840.1.113719.1.2.8\":{d:\"novellAlgorithm\",c:\"Novell\"},\"2.16.840.1.113719.1.2.8.22\":{d:\"desCbcIV8\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.23\":{d:\"desCbcPadIV8\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.24\":{d:\"desEDE2CbcIV8\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.25\":{d:\"desEDE2CbcPadIV8\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.26\":{d:\"desEDE3CbcIV8\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.27\":{d:\"desEDE3CbcPadIV8\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.28\":{d:\"rc5CbcPad\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.29\":{d:\"md2WithRSAEncryptionBSafe1\",c:\"Novell signature algorithm\"},\"2.16.840.1.113719.1.2.8.30\":{d:\"md5WithRSAEncryptionBSafe1\",c:\"Novell signature algorithm\"},\"2.16.840.1.113719.1.2.8.31\":{d:\"sha1WithRSAEncryptionBSafe1\",c:\"Novell signature algorithm\"},\"2.16.840.1.113719.1.2.8.32\":{d:\"lmDigest\",c:\"Novell digest algorithm\"},\"2.16.840.1.113719.1.2.8.40\":{d:\"md2\",c:\"Novell digest algorithm\"},\"2.16.840.1.113719.1.2.8.50\":{d:\"md5\",c:\"Novell digest algorithm\"},\"2.16.840.1.113719.1.2.8.51\":{d:\"ikeHmacWithSHA1-RSA\",c:\"Novell signature algorithm\"},\"2.16.840.1.113719.1.2.8.52\":{d:\"ikeHmacWithMD5-RSA\",c:\"Novell signature algorithm\"},\"2.16.840.1.113719.1.2.8.69\":{d:\"rc2CbcPad\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.82\":{d:\"sha-1\",c:\"Novell digest algorithm\"},\"2.16.840.1.113719.1.2.8.92\":{d:\"rc2BSafe1Cbc\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.95\":{d:\"md4\",c:\"Novell digest algorithm\"},\"2.16.840.1.113719.1.2.8.130\":{d:\"md4Packet\",c:\"Novell keyed hash\"},\"2.16.840.1.113719.1.2.8.131\":{d:\"rsaEncryptionBsafe1\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.132\":{d:\"nwPassword\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.2.8.133\":{d:\"novellObfuscate-1\",c:\"Novell encryption algorithm\"},\"2.16.840.1.113719.1.9\":{d:\"pki\",c:\"Novell\"},\"2.16.840.1.113719.1.9.4\":{d:\"pkiAttributeType\",c:\"Novell PKI\"},\"2.16.840.1.113719.1.9.4.1\":{d:\"securityAttributes\",c:\"Novell PKI attribute type\"},\"2.16.840.1.113719.1.9.4.2\":{d:\"relianceLimit\",c:\"Novell PKI attribute type\"},\"2.16.840.1.113730.1\":{d:\"cert-extension\",c:\"Netscape\"},\"2.16.840.1.113730.1.1\":{d:\"netscape-cert-type\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.2\":{d:\"netscape-base-url\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.3\":{d:\"netscape-revocation-url\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.4\":{d:\"netscape-ca-revocation-url\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.7\":{d:\"netscape-cert-renewal-url\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.8\":{d:\"netscape-ca-policy-url\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.9\":{d:\"HomePage-url\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.10\":{d:\"EntityLogo\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.11\":{d:\"UserPicture\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.12\":{d:\"netscape-ssl-server-name\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.1.13\":{d:\"netscape-comment\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.2\":{d:\"data-type\",c:\"Netscape\"},\"2.16.840.1.113730.2.1\":{d:\"dataGIF\",c:\"Netscape data type\"},\"2.16.840.1.113730.2.2\":{d:\"dataJPEG\",c:\"Netscape data type\"},\"2.16.840.1.113730.2.3\":{d:\"dataURL\",c:\"Netscape data type\"},\"2.16.840.1.113730.2.4\":{d:\"dataHTML\",c:\"Netscape data type\"},\"2.16.840.1.113730.2.5\":{d:\"certSequence\",c:\"Netscape data type\"},\"2.16.840.1.113730.2.6\":{d:\"certURL\",c:\"Netscape certificate extension\"},\"2.16.840.1.113730.3\":{d:\"directory\",c:\"Netscape\"},\"2.16.840.1.113730.3.1\":{d:\"ldapDefinitions\",c:\"Netscape directory\"},\"2.16.840.1.113730.3.1.1\":{d:\"carLicense\",c:\"Netscape LDAP definitions\"},\"2.16.840.1.113730.3.1.2\":{d:\"departmentNumber\",c:\"Netscape LDAP definitions\"},\"2.16.840.1.113730.3.1.3\":{d:\"employeeNumber\",c:\"Netscape LDAP definitions\"},\"2.16.840.1.113730.3.1.4\":{d:\"employeeType\",c:\"Netscape LDAP definitions\"},\"2.16.840.1.113730.3.1.216\":{d:\"userPKCS12\",c:\"Netscape LDAP definitions\"},\"2.16.840.1.113730.3.2.2\":{d:\"inetOrgPerson\",c:\"Netscape LDAP definitions\"},\"2.16.840.1.113730.4.1\":{d:\"serverGatedCrypto\",c:\"Netscape\"},\"2.16.840.1.113733.1.6.3\":{d:\"verisignCZAG\",c:\"Verisign extension\"},\"2.16.840.1.113733.1.6.6\":{d:\"verisignInBox\",c:\"Verisign extension\"},\"2.16.840.1.113733.1.6.11\":{d:\"verisignOnsiteJurisdictionHash\",c:\"Verisign extension\"},\"2.16.840.1.113733.1.6.13\":{d:\"Unknown Verisign VPN extension\",c:\"Verisign extension\"},\"2.16.840.1.113733.1.6.15\":{d:\"verisignServerID\",c:\"Verisign extension\"},\"2.16.840.1.113733.1.7.1.1\":{d:\"verisignCertPolicies95Qualifier1\",c:\"Verisign policy\"},\"2.16.840.1.113733.1.7.1.1.1\":{d:\"verisignCPSv1notice\",c:\"Verisign policy (obsolete)\"},\"2.16.840.1.113733.1.7.1.1.2\":{d:\"verisignCPSv1nsi\",c:\"Verisign policy (obsolete)\"},\"2.16.840.1.113733.1.8.1\":{d:\"verisignISSStrongCrypto\",c:\"Verisign\"},\"2.16.840.1.113733.1\":{d:\"pki\",c:\"Verisign extension\"},\"2.16.840.1.113733.1.9\":{d:\"pkcs7Attribute\",c:\"Verisign PKI extension\"},\"2.16.840.1.113733.1.9.2\":{d:\"messageType\",c:\"Verisign PKCS #7 attribute\"},\"2.16.840.1.113733.1.9.3\":{d:\"pkiStatus\",c:\"Verisign PKCS #7 attribute\"},\"2.16.840.1.113733.1.9.4\":{d:\"failInfo\",c:\"Verisign PKCS #7 attribute\"},\"2.16.840.1.113733.1.9.5\":{d:\"senderNonce\",c:\"Verisign PKCS #7 attribute\"},\"2.16.840.1.113733.1.9.6\":{d:\"recipientNonce\",c:\"Verisign PKCS #7 attribute\"},\"2.16.840.1.113733.1.9.7\":{d:\"transID\",c:\"Verisign PKCS #7 attribute\"},\"2.16.840.1.113733.1.9.8\":{d:\"extensionReq\",c:\"Verisign PKCS #7 attribute. Use PKCS #9 extensionRequest instead\",w:true},\"2.16.840.1.113741.2\":{d:\"intelCDSA\",c:\"Intel CDSA\"},\"2.16.840.1.114412.1\":{d:\"digiCertNonEVCerts\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.1.1\":{d:\"digiCertOVCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.1.2\":{d:\"digiCertDVCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.1.11\":{d:\"digiCertFederatedDeviceCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.1.3.0.1\":{d:\"digiCertGlobalCAPolicy\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.1.3.0.2\":{d:\"digiCertHighAssuranceEVCAPolicy\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.1.3.0.3\":{d:\"digiCertGlobalRootCAPolicy\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.1.3.0.4\":{d:\"digiCertAssuredIDRootCAPolicy\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.2\":{d:\"digiCertEVCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.3\":{d:\"digiCertObjectSigningCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.3.1\":{d:\"digiCertCodeSigningCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.3.2\":{d:\"digiCertEVCodeSigningCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.3.11\":{d:\"digiCertKernelCodeSigningCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.3.21\":{d:\"digiCertDocumentSigningCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4\":{d:\"digiCertClientCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.1.1\":{d:\"digiCertLevel1PersonalClientCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.1.2\":{d:\"digiCertLevel1EnterpriseClientCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.2\":{d:\"digiCertLevel2ClientCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.3.1\":{d:\"digiCertLevel3USClientCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.3.2\":{d:\"digiCertLevel3CBPClientCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.4.1\":{d:\"digiCertLevel4USClientCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.4.2\":{d:\"digiCertLevel4CBPClientCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.5.1\":{d:\"digiCertPIVHardwareCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.5.2\":{d:\"digiCertPIVCardAuthCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.2.4.5.3\":{d:\"digiCertPIVContentSigningCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.4.31\":{d:\"digiCertGridClassicCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.4.31.5\":{d:\"digiCertGridIntegratedCert\",c:\"Digicert CA policy\"},\"2.16.840.1.114412.31.4.31.1\":{d:\"digiCertGridHostCert\",c:\"Digicert CA policy\"},\"2.23.42.0\":{d:\"contentType\",c:\"SET\"},\"2.23.42.0.0\":{d:\"panData\",c:\"SET contentType\"},\"2.23.42.0.1\":{d:\"panToken\",c:\"SET contentType\"},\"2.23.42.0.2\":{d:\"panOnly\",c:\"SET contentType\"},\"2.23.42.1\":{d:\"msgExt\",c:\"SET\"},\"2.23.42.2\":{d:\"field\",c:\"SET\"},\"2.23.42.2.0\":{d:\"fullName\",c:\"SET field\"},\"2.23.42.2.1\":{d:\"givenName\",c:\"SET field\"},\"2.23.42.2.2\":{d:\"familyName\",c:\"SET field\"},\"2.23.42.2.3\":{d:\"birthFamilyName\",c:\"SET field\"},\"2.23.42.2.4\":{d:\"placeName\",c:\"SET field\"},\"2.23.42.2.5\":{d:\"identificationNumber\",c:\"SET field\"},\"2.23.42.2.6\":{d:\"month\",c:\"SET field\"},\"2.23.42.2.7\":{d:\"date\",c:\"SET field\"},\"2.23.42.2.8\":{d:\"address\",c:\"SET field\"},\"2.23.42.2.9\":{d:\"telephone\",c:\"SET field\"},\"2.23.42.2.10\":{d:\"amount\",c:\"SET field\"},\"2.23.42.2.11\":{d:\"accountNumber\",c:\"SET field\"},\"2.23.42.2.12\":{d:\"passPhrase\",c:\"SET field\"},\"2.23.42.3\":{d:\"attribute\",c:\"SET\"},\"2.23.42.3.0\":{d:\"cert\",c:\"SET attribute\"},\"2.23.42.3.0.0\":{d:\"rootKeyThumb\",c:\"SET cert attribute\"},\"2.23.42.3.0.1\":{d:\"additionalPolicy\",c:\"SET cert attribute\"},\"2.23.42.4\":{d:\"algorithm\",c:\"SET\"},\"2.23.42.5\":{d:\"policy\",c:\"SET\"},\"2.23.42.5.0\":{d:\"root\",c:\"SET policy\"},\"2.23.42.6\":{d:\"module\",c:\"SET\"},\"2.23.42.7\":{d:\"certExt\",c:\"SET\"},\"2.23.42.7.0\":{d:\"hashedRootKey\",c:\"SET cert extension\"},\"2.23.42.7.1\":{d:\"certificateType\",c:\"SET cert extension\"},\"2.23.42.7.2\":{d:\"merchantData\",c:\"SET cert extension\"},\"2.23.42.7.3\":{d:\"cardCertRequired\",c:\"SET cert extension\"},\"2.23.42.7.4\":{d:\"tunneling\",c:\"SET cert extension\"},\"2.23.42.7.5\":{d:\"setExtensions\",c:\"SET cert extension\"},\"2.23.42.7.6\":{d:\"setQualifier\",c:\"SET cert extension\"},\"2.23.42.8\":{d:\"brand\",c:\"SET\"},\"2.23.42.8.1\":{d:\"IATA-ATA\",c:\"SET brand\"},\"2.23.42.8.4\":{d:\"VISA\",c:\"SET brand\"},\"2.23.42.8.5\":{d:\"MasterCard\",c:\"SET brand\"},\"2.23.42.8.30\":{d:\"Diners\",c:\"SET brand\"},\"2.23.42.8.34\":{d:\"AmericanExpress\",c:\"SET brand\"},\"2.23.42.8.6011\":{d:\"Novus\",c:\"SET brand\"},\"2.23.42.9\":{d:\"vendor\",c:\"SET\"},\"2.23.42.9.0\":{d:\"GlobeSet\",c:\"SET vendor\"},\"2.23.42.9.1\":{d:\"IBM\",c:\"SET vendor\"},\"2.23.42.9.2\":{d:\"CyberCash\",c:\"SET vendor\"},\"2.23.42.9.3\":{d:\"Terisa\",c:\"SET vendor\"},\"2.23.42.9.4\":{d:\"RSADSI\",c:\"SET vendor\"},\"2.23.42.9.5\":{d:\"VeriFone\",c:\"SET vendor\"},\"2.23.42.9.6\":{d:\"TrinTech\",c:\"SET vendor\"},\"2.23.42.9.7\":{d:\"BankGate\",c:\"SET vendor\"},\"2.23.42.9.8\":{d:\"GTE\",c:\"SET vendor\"},\"2.23.42.9.9\":{d:\"CompuSource\",c:\"SET vendor\"},\"2.23.42.9.10\":{d:\"Griffin\",c:\"SET vendor\"},\"2.23.42.9.11\":{d:\"Certicom\",c:\"SET vendor\"},\"2.23.42.9.12\":{d:\"OSS\",c:\"SET vendor\"},\"2.23.42.9.13\":{d:\"TenthMountain\",c:\"SET vendor\"},\"2.23.42.9.14\":{d:\"Antares\",c:\"SET vendor\"},\"2.23.42.9.15\":{d:\"ECC\",c:\"SET vendor\"},\"2.23.42.9.16\":{d:\"Maithean\",c:\"SET vendor\"},\"2.23.42.9.17\":{d:\"Netscape\",c:\"SET vendor\"},\"2.23.42.9.18\":{d:\"Verisign\",c:\"SET vendor\"},\"2.23.42.9.19\":{d:\"BlueMoney\",c:\"SET vendor\"},\"2.23.42.9.20\":{d:\"Lacerte\",c:\"SET vendor\"},\"2.23.42.9.21\":{d:\"Fujitsu\",c:\"SET vendor\"},\"2.23.42.9.22\":{d:\"eLab\",c:\"SET vendor\"},\"2.23.42.9.23\":{d:\"Entrust\",c:\"SET vendor\"},\"2.23.42.9.24\":{d:\"VIAnet\",c:\"SET vendor\"},\"2.23.42.9.25\":{d:\"III\",c:\"SET vendor\"},\"2.23.42.9.26\":{d:\"OpenMarket\",c:\"SET vendor\"},\"2.23.42.9.27\":{d:\"Lexem\",c:\"SET vendor\"},\"2.23.42.9.28\":{d:\"Intertrader\",c:\"SET vendor\"},\"2.23.42.9.29\":{d:\"Persimmon\",c:\"SET vendor\"},\"2.23.42.9.30\":{d:\"NABLE\",c:\"SET vendor\"},\"2.23.42.9.31\":{d:\"espace-net\",c:\"SET vendor\"},\"2.23.42.9.32\":{d:\"Hitachi\",c:\"SET vendor\"},\"2.23.42.9.33\":{d:\"Microsoft\",c:\"SET vendor\"},\"2.23.42.9.34\":{d:\"NEC\",c:\"SET vendor\"},\"2.23.42.9.35\":{d:\"Mitsubishi\",c:\"SET vendor\"},\"2.23.42.9.36\":{d:\"NCR\",c:\"SET vendor\"},\"2.23.42.9.37\":{d:\"e-COMM\",c:\"SET vendor\"},\"2.23.42.9.38\":{d:\"Gemplus\",c:\"SET vendor\"},\"2.23.42.10\":{d:\"national\",c:\"SET\"},\"2.23.42.10.392\":{d:\"Japan\",c:\"SET national\"},\"2.23.43.1.4\":{d:\"wTLS-ECC\",c:\"WAP WTLS\"},\"2.23.43.1.4.1\":{d:\"wTLS-ECC-curve1\",c:\"WAP WTLS\"},\"2.23.43.1.4.6\":{d:\"wTLS-ECC-curve6\",c:\"WAP WTLS\"},\"2.23.43.1.4.8\":{d:\"wTLS-ECC-curve8\",c:\"WAP WTLS\"},\"2.23.43.1.4.9\":{d:\"wTLS-ECC-curve9\",c:\"WAP WTLS\"},\"2.23.133\":{d:\"tCPA\",c:\"TCPA/TCG\"},\"2.23.133.1\":{d:\"tcgSpecVersion\",c:\"TCPA/TCG\"},\"2.23.133.2\":{d:\"tcgAttribute\",c:\"TCPA/TCG\"},\"2.23.133.2.1\":{d:\"tcgTpmManufacturer\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.2\":{d:\"tcgTpmModel\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.3\":{d:\"tcgTpmVersion\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.4\":{d:\"tcgPlatformManufacturer\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.5\":{d:\"tcgPlatformModel\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.6\":{d:\"tcgPlatformVersion\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.7\":{d:\"tcgComponentManufacturer\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.8\":{d:\"tcgComponentModel\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.9\":{d:\"tcgComponentVersion\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.10\":{d:\"tcgSecurityQualities\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.11\":{d:\"tcgTpmProtectionProfile\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.12\":{d:\"tcgTpmSecurityTarget\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.13\":{d:\"tcgFoundationProtectionProfile\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.14\":{d:\"tcgFoundationSecurityTarget\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.15\":{d:\"tcgTpmIdLabel\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.16\":{d:\"tcgTpmSpecification\",c:\"TCPA/TCG Attribute\"},\"2.23.133.2.18\":{d:\"tcgTpmSecurityAssertions\",c:\"TCPA/TCG Attribute\"},\"2.23.133.3\":{d:\"tcgProtocol\",c:\"TCPA/TCG\"},\"2.23.133.3.1\":{d:\"tcgPrttTpmIdProtocol\",c:\"TCPA/TCG Protocol\"},\"2.23.133.8.1\":{d:\"tcgEKCertificate\",c:\"TCPA/TCG Key Usage\"},\"2.23.133.10.1.1.1\":{d:\"tcgObject\",c:\"TCPA/TCG Object\"},\"2.23.134.1.4.2.1\":{d:\"postSignumRootQCA\",c:\"PostSignum CA\"},\"2.23.134.1.2.2.3\":{d:\"postSignumPublicCA\",c:\"PostSignum CA\"},\"2.23.134.1.2.1.8.210\":{d:\"postSignumCommercialServerPolicy\",c:\"PostSignum CA\"},\"2.23.136.1.1.1\":{d:\"mRTDSignatureData\",c:\"ICAO MRTD\"},\"2.23.140.1.1\":{d:\"evGuidelines\",c:\"CAB Certificate Policies\"},\"2.23.140.1.2.1\":{d:\"domainValidated\",c:\"CAB Certificate Policies\"},\"2.23.140.1.2.2\":{d:\"subjectIdentityValidated\",c:\"CAB Certificate Policies\"},\"2.23.140.1.4.1\":{d:\"codeSigningRequirements\",c:\"CAB Certificate Policies\"},\"2.54.1775.2\":{d:\"hashedRootKey\",c:\"SET. Deprecated, use (2 23 42 7 0) instead\",w:true},\"2.54.1775.3\":{d:\"certificateType\",c:\"SET. Deprecated, use (2 23 42 7 0) instead\",w:true},\"2.54.1775.4\":{d:\"merchantData\",c:\"SET. Deprecated, use (2 23 42 7 0) instead\",w:true},\"2.54.1775.5\":{d:\"cardCertRequired\",c:\"SET. Deprecated, use (2 23 42 7 0) instead\",w:true},\"2.54.1775.6\":{d:\"tunneling\",c:\"SET. Deprecated, use (2 23 42 7 0) instead\",w:true},\"2.54.1775.7\":{d:\"setQualifier\",c:\"SET. Deprecated, use (2 23 42 7 0) instead\",w:true},\"2.54.1775.99\":{d:\"setData\",c:\"SET. Deprecated, use (2 23 42 7 0) instead\",w:true},\"1.2.40.0.17.1.22\":{d:\"A-Trust EV policy\",c:\"A-Trust CA Root\"},\"1.3.6.1.4.1.34697.2.1\":{d:\"AffirmTrust EV policy\",c:\"AffirmTrust Commercial\"},\"1.3.6.1.4.1.34697.2.2\":{d:\"AffirmTrust EV policy\",c:\"AffirmTrust Networking\"},\"1.3.6.1.4.1.34697.2.3\":{d:\"AffirmTrust EV policy\",c:\"AffirmTrust Premium\"},\"1.3.6.1.4.1.34697.2.4\":{d:\"AffirmTrust EV policy\",c:\"AffirmTrust Premium ECC\"},\"1.3.6.1.4.1.17326.10.14.2.1.2\":{d:\"Camerfirma EV policy\",c:\"Camerfirma CA Root\"},\"1.3.6.1.4.1.17326.10.8.12.1.2\":{d:\"Camerfirma EV policy\",c:\"Camerfirma CA Root\"},\"1.3.6.1.4.1.22234.2.5.2.3.1\":{d:\"CertPlus EV policy\",c:\"CertPlus Class 2 Primary CA (formerly Keynectis)\"},\"1.3.6.1.4.1.6449.1.2.1.5.1\":{d:\"Comodo EV policy\",c:\"COMODO Certification Authority\"},\"1.3.6.1.4.1.6334.1.100.1\":{d:\"Cybertrust EV policy\",c:\"Cybertrust Global Root (now Verizon Business)\"},\"1.3.6.1.4.1.4788.2.202.1\":{d:\"D-TRUST EV policy\",c:\"D-TRUST Root Class 3 CA 2 EV 2009\"},\"2.16.840.1.114412.2.1\":{d:\"DigiCert EV policy\",c:\"DigiCert High Assurance EV Root CA\"},\"2.16.528.1.1001.1.1.1.12.6.1.1.1\":{d:\"DigiNotar EV policy\",c:\"DigiNotar Root CA\"},\"2.16.840.1.114028.10.1.2\":{d:\"Entrust EV policy\",c:\"Entrust Root Certification Authority\"},\"1.3.6.1.4.1.14370.1.6\":{d:\"GeoTrust EV policy\",c:\"GeoTrust Primary Certification Authority (formerly Equifax)\"},\"1.3.6.1.4.1.4146.1.1\":{d:\"GlobalSign EV policy\",c:\"GlobalSign\"},\"2.16.840.1.114413.1.7.23.3\":{d:\"GoDaddy EV policy\",c:\"GoDaddy Class 2 Certification Authority (formerly ValiCert)\"},\"1.3.6.1.4.1.14777.6.1.1\":{d:\"Izenpe EV policy\",c:\"Certificado de Servidor Seguro SSL EV\"},\"1.3.6.1.4.1.14777.6.1.2\":{d:\"Izenpe EV policy\",c:\"Certificado de Sede Electronica EV\"},\"1.3.6.1.4.1.782.1.2.1.8.1\":{d:\"Network Solutions EV policy\",c:\"Network Solutions Certificate Authority\"},\"1.3.6.1.4.1.8024.0.2.100.1.2\":{d:\"QuoVadis EV policy\",c:\"QuoVadis Root CA 2\"},\"1.2.392.200091.100.721.1\":{d:\"Security Communication (SECOM) EV policy\",c:\"Security Communication RootCA1\"},\"2.16.840.1.114414.1.7.23.3\":{d:\"Starfield EV policy\",c:\"Starfield Class 2 Certification Authority\"},\"1.3.6.1.4.1.23223.1.1.1\":{d:\"StartCom EV policy\",c:\"StartCom Certification Authority\"},\"2.16.756.1.89.1.2.1.1\":{d:\"SwissSign EV policy\",c:\"SwissSign Gold CA - G2\"},\"1.3.6.1.4.1.7879.13.24.1\":{d:\"T-TeleSec EV policy\",c:\"T-TeleSec GlobalRoot Class 3\"},\"2.16.840.1.113733.1.7.48.1\":{d:\"Thawte EV policy\",c:\"Thawte Premium Server CA\"},\"2.16.840.1.114404.1.1.2.4.1\":{d:\"TrustWave EV policy\",c:\"TrustWave CA, formerly SecureTrust, before that XRamp\"},\"1.3.6.1.4.1.40869.1.1.22.3\":{d:\"TWCA EV policy\",c:\"TWCA Root Certification Authority\"},\"2.16.840.1.113733.1.7.23.6\":{d:\"VeriSign EV policy\",c:\"VeriSign Class 3 Public Primary Certification Authority\"},\"2.16.840.1.114171.500.9\":{d:\"Wells Fargo EV policy\",c:\"Wells Fargo WellsSecure Public Root Certificate Authority\"},\"2.23.136.1.1.6.1\":{d:\"nameChange\",c:\"X.509 extension\"},\"2.23.136.1.1.6.2\":{d:\"documentTypeList\",c:\"X.509 extension\"}};function k(e){return se[e]?se[e].d:e}function Fe(e){return se[e]?se[e].d.replace(\"-\",\"\").toUpperCase():e}function vc(e){return se[e]?se[e].d.replace(\"-\",\"\"):e}function Ue(e){let t=Math.floor(e[2]/40),r=e[2]%40,i=[t,r],n=0;for(let o=3;o<e.length;o++)e[o]&128?n=(n<<7)+(e[o]&127):(n=(n<<7)+e[o],i.push(n),n=0);return i.join(\".\")}var W=class extends AsnArray{constructor(t){super(t),Object.setPrototypeOf(this,W.prototype);}};W=T([AsnType({type:AsnTypeTypes.Set,itemType:Attribute})],W);var ye=class{constructor(t={}){this.number=1;this.hash=new ArrayBuffer(0);Object.assign(this,t);}};T([AsnProp({type:AsnPropTypes.Integer})],ye.prototype,\"number\",2),T([AsnProp({type:AsnPropTypes.OctetString})],ye.prototype,\"hash\",2);var Ce=class{constructor(t={}){this.ldsVersion=\"\";this.unicodeVersion=\"\";Object.assign(this,t);}};T([AsnProp({type:AsnPropTypes.PrintableString})],Ce.prototype,\"ldsVersion\",2),T([AsnProp({type:AsnPropTypes.PrintableString})],Ce.prototype,\"unicodeVersion\",2);var he=class{constructor(t){this.value=\"\";t&&(typeof t==\"string\"?this.value=t:Object.assign(this,t));}};T([AsnProp({type:AsnPropTypes.ObjectIdentifier})],he.prototype,\"value\",2),he=T([AsnType({type:AsnTypeTypes.Choice})],he);var V=class{constructor(t={}){this.version=1;this.hashAlgorithm=new DigestAlgorithmIdentifier;this.dataGroups=[];Object.assign(this,t);}};T([AsnProp({type:AsnPropTypes.Integer})],V.prototype,\"version\",2),T([AsnProp({type:DigestAlgorithmIdentifier})],V.prototype,\"hashAlgorithm\",2),T([AsnProp({type:ye,repeated:\"sequence\"})],V.prototype,\"dataGroups\",2),T([AsnProp({type:Ce,optional:true})],V.prototype,\"versionInfo\",2);var de=class{constructor(t={}){this.version=0;this.certificates=[];Object.assign(this,t);}};T([AsnProp({type:AsnPropTypes.Integer})],de.prototype,\"version\",2),T([AsnProp({type:Certificate,repeated:\"set\"})],de.prototype,\"certificates\",2),de=T([AsnType({type:AsnTypeTypes.Sequence})],de);function be(e){return e.map(t=>t.map(r=>`${k(r.type)}=${r.value.toString()}`).join(\", \")).join(\", \")}var Ae=class e{constructor(t){this.tbs=t.tbs,this.signatureAlgorithm=t.signatureAlgorithm,this.signature=t.signature;}static fromDER(t){t=t.slice(0,2).equals(p.from([119,130]))?t.slice(4):t;let r=AsnParser.parse(t.toUInt8Array(),Certificate);return e.fromCertificate(r)}static fromCertificate(t){let r=t.tbsCertificate;if(!r)throw new Error(\"No TBS found in DSC certificate\");return {tbs:{bytes:p.from(AsnSerializer.serialize(r)),version:r.version,serialNumber:p.from(r.serialNumber),signatureAlgorithm:{name:k(r.signature.algorithm),parameters:r.signature.parameters?p.from(r.signature.parameters):void 0},issuer:be(r.issuer),validity:{notBefore:r.validity.notBefore.getTime(),notAfter:r.validity.notAfter.getTime()},subject:be(r.subject),subjectPublicKeyInfo:{signatureAlgorithm:{name:k(r.subjectPublicKeyInfo.algorithm.algorithm),parameters:r.subjectPublicKeyInfo.algorithm.parameters?p.from(r.subjectPublicKeyInfo.algorithm.parameters):void 0},subjectPublicKey:p.from(r.subjectPublicKeyInfo.subjectPublicKey)},issuerUniqueID:r.issuerUniqueID?p.from(r.issuerUniqueID):void 0,subjectUniqueID:r.subjectUniqueID?p.from(r.subjectUniqueID):void 0,extensions:new Map(r.extensions?.map(i=>[k(i.extnID),{critical:i.critical,value:p.from(i.extnValue.buffer)}])??[])},signatureAlgorithm:{name:k(t.signatureAlgorithm.algorithm),parameters:t.signatureAlgorithm.parameters?p.from(t.signatureAlgorithm.parameters):void 0},signature:p.from(t.signatureValue)}}};var Tt=class{constructor(t){this.values=t;}[Symbol.for(\"nodejs.util.inspect.custom\")](){return new Map(Object.entries(this.values).map(([t,r])=>[Number(t),r]))}},Ie=class e{constructor(t){this.version=t.version,this.digestAlgorithms=t.digestAlgorithms,this.certificate=t.certificate,this.signerInfo=t.signerInfo,this.bytes=t.bytes,this.encapContentInfo=t.encapContentInfo;}static fromDER(t){t=t.slice(0,2).equals(p.from([119,130]))?t.slice(4):t;let r=AsnParser.parse(t.toUInt8Array(),ContentInfo),i=AsnParser.parse(r.content,SignedData);if(!i.encapContentInfo?.eContent?.single)throw new Error(\"No eContent found\");let n=AsnConvert.parse(i.encapContentInfo?.eContent?.single,V),o=i.certificates,c=o?.[0]?.certificate;if(!c)throw new Error(\"No DSC certificate found\");(o?.length??0)>1&&console.warn(\"Warning: Found multiple DSC certificates\");let a=i.signerInfos[0];if(i.signerInfos.length>1&&console.warn(\"Warning: Found multiple SignerInfos\"),!a.signedAttrs)throw new Error(\"No signedAttrs found\");let s=new Map(a.signedAttrs.map(h=>[k(h.attrType),p.from(h.attrValues[0])])),d=new W(a.signedAttrs.map(h=>h)),l=s.get(\"messageDigest\");if(!l)throw new Error(\"No signedAttrs.messageDigest found\");let u=s.get(\"signingTime\"),m=u?AsnParser.parse(u.toUInt8Array(),Time).getTime():void 0,g={bytes:p.from(AsnSerializer.serialize(d)),contentType:k(Ue(s.get(\"contentType\").toNumberArray())),messageDigest:l,...m&&{signingTime:m}};return new e({bytes:t,version:i.version,digestAlgorithms:i.digestAlgorithms.map(h=>Fe(h.algorithm)),encapContentInfo:{eContentType:k(i.encapContentInfo.eContentType),eContent:{bytes:p.from(i.encapContentInfo.eContent.single.buffer),version:n.version,hashAlgorithm:Fe(n.hashAlgorithm.algorithm),dataGroupHashValues:new Tt(Object.fromEntries(n.dataGroups.map(h=>[h.number,p.from(h.hash)])))}},signerInfo:{version:a.version,signedAttrs:g,digestAlgorithm:Fe(a.digestAlgorithm.algorithm),signatureAlgorithm:{name:k(a.signatureAlgorithm.algorithm),parameters:a.signatureAlgorithm.parameters?p.from(a.signatureAlgorithm.parameters):void 0},signature:p.from(a.signature.buffer),sid:{issuerAndSerialNumber:a.sid.issuerAndSerialNumber?{issuer:be(a.sid.issuerAndSerialNumber.issuer),serialNumber:p.from(a.sid.issuerAndSerialNumber.serialNumber)}:void 0,subjectKeyIdentifier:a.sid.subjectKeyIdentifier?p.from(a.sid.subjectKeyIdentifier.buffer).toString(\"hex\"):void 0}},certificate:Ae.fromCertificate(c)})}getRedactedSOD(){let t=this.bytes.toUInt8Array(),r=this.extractSensitiveRegions();return Object.values(this.encapContentInfo.eContent.dataGroupHashValues.values).forEach(i=>this.redactRegion(t,r.eContent,i.toUInt8Array())),this.redactRegion(t,r.signature,this.signerInfo.signature.toUInt8Array()),this.redactRegion(t,r.messageDigest,this.signerInfo.signedAttrs.messageDigest.toUInt8Array()),p.from(t)}redactRegion(t,r,i){let n=this.findSubarray(r.bytes,i);n!==-1&&(i.length>=3&&i[0]===4&&i[1]<=127&&i[1]+2===i.length?t.fill(0,r.offset+n+2,r.offset+n+i.length):t.fill(0,r.offset+n,r.offset+n+i.length));}extractSensitiveRegions(){let t=this.bytes.toUInt8Array(),r=[{name:\"eContent\",bytes:this.encapContentInfo.eContent.bytes.toUInt8Array()},{name:\"signature\",bytes:this.signerInfo.signature.toUInt8Array()},{name:\"messageDigest\",bytes:this.signerInfo.signedAttrs.messageDigest.toUInt8Array()}],i=this.findMultipleSubarrays(t,r);return Object.fromEntries(r.map(({name:n,bytes:o})=>{let c=i[n];return c!==void 0?[n,{bytes:o,offset:c}]:(console.warn(`Could not locate ${n} region in SOD, falling back to full SOD search`),[n,{bytes:t,offset:0}])}))}findMultipleSubarrays(t,r){return r.reduce((i,{name:n,bytes:o})=>{let c=this.findSubarray(t,o);return i[n]=c!==-1?c:void 0,i},{})}findSubarray(t,r){let i=t.length,n=r.length;e:for(let o=0;o<=i-n;o++){for(let c=0;c<n;c++)if(t[o+c]!==r[c])continue e;return o}return -1}getExportableSOD(){return {...this,encapContentInfo:{...this.encapContentInfo,eContent:{...this.encapContentInfo.eContent,bytes:this.encapContentInfo.eContent.bytes.length,dataGroupHashValues:Object.fromEntries(Object.entries(this.encapContentInfo.eContent.dataGroupHashValues.values).map(([t,r])=>[Number(t),r.length]))}},signerInfo:{...this.signerInfo,signedAttrs:{...this.signerInfo.signedAttrs,messageDigest:this.signerInfo.signedAttrs.messageDigest.length,bytes:this.signerInfo.signedAttrs.bytes.length},signature:this.signerInfo.signature.length,sid:{issuerAndSerialNumber:this.signerInfo.sid.issuerAndSerialNumber?{issuer:this.signerInfo.sid.issuerAndSerialNumber.issuer,serialNumber:this.signerInfo.sid.issuerAndSerialNumber.serialNumber.length}:void 0}},bytes:this.bytes.length}}};me();var Gr=class{getPassportViewModel(){if(this.dg1===void 0||this.sod===void 0)throw new Error(\"PassportReader not initialized\");let t=this.dg1.length===95,r=this.dg1.slice(5).toString(\"ascii\");return {appVersion:\"\",mrz:r,name:r.slice(t?60:5,t?90:44),dateOfBirth:r.slice(t?30:57,t?36:63),nationality:r.slice(t?45:54,t?48:57),gender:r.slice(t?37:64,t?38:65),passportNumber:r.slice(t?5:44,t?14:53),dateOfIssue:\"\",passportExpiry:r.slice(t?38:65,t?44:71),firstName:\"\",lastName:\"\",fullName:r.slice(t?60:5,t?90:44),photo:\"\",originalPhoto:\"\",chipAuthSupported:false,chipAuthSuccess:false,chipAuthFailed:false,LDSVersion:\"\",dataGroups:Object.entries(this.sod.encapContentInfo.eContent.dataGroupHashValues.values).map(([i,n])=>({groupNumber:Number(i),name:\"DG\"+i,hash:n.toNumberArray(),value:i===\"1\"?this.dg1?.toNumberArray()??[]:[]})),dataGroupsHashAlgorithm:this.sod.encapContentInfo.eContent.hashAlgorithm,sod:this.sod}}loadPassport(t,r){this.sod=Ie.fromDER(r),this.dg1=t;}};function Xe(e){let t=AsnParser.parse(e.sod.bytes.toBuffer(),ContentInfo);return AsnParser.parse(t.content,SignedData)}function _s(e){let t=f1(e),r=9,i=t[r+1],n=t.slice(r,r+i+2);return ne[Ue(n)]??\"\"}function f1(e){let t=Xe(e);return Array.from(new Uint8Array(t.encapContentInfo.eContent?.single?.buffer??new ArrayBuffer(0)))}function Rs(e){let t=Xe(e);return ne[t.digestAlgorithms[0].algorithm]??\"\"}function vs(e){return Xe(e).version.toString()}function Le(e){let t=Xe(e);return (t.certificates?t.certificates[0]?.certificate?.tbsCertificate:null)??null}function Pe(e){return e.sod.signerInfo.signatureAlgorithm.name?.toLowerCase().includes(\"rsa\")?\"RSA\":e.sod.signerInfo.signatureAlgorithm.name?.toLowerCase().includes(\"ecdsa\")?\"ECDSA\":\"\"}function ws(e){return e.sod.signerInfo.digestAlgorithm}function Ks(e){return e.sod.certificate.signatureAlgorithm.name?.toLowerCase().includes(\"rsa\")?\"RSA\":e.sod.certificate.signatureAlgorithm.name?.toLowerCase().includes(\"ecdsa\")?\"ECDSA\":\"\"}function Dt(e){if(e.signatureAlgorithm.name.toLowerCase().includes(\"pss\"))return oe(e.signatureAlgorithm.parameters?.toBuffer()).hashAlgorithm;if(e.signatureAlgorithm.name?.toLowerCase().includes(\"sha1\"))return \"SHA1\";if(e.signatureAlgorithm.name?.toLowerCase().includes(\"sha224\"))return \"SHA224\";if(e.signatureAlgorithm.name?.toLowerCase().includes(\"sha256\"))return \"SHA256\";if(e.signatureAlgorithm.name?.toLowerCase().includes(\"sha384\"))return \"SHA384\";if(e.signatureAlgorithm.name?.toLowerCase().includes(\"sha512\"))return \"SHA512\"}function Ee(e){let t=e?.mrz,i=t.length==90?60:5,n=Q(t.split(\"\"),[\"<\",\"<\"],i)+2,o=false;n>0&&n<t.length&&t[n]===\"<\"&&(n=Q(t.split(\"\"),[\"<\"],i)+1,o=true);let c=Q(t.split(\"\"),[\"<\"],n);return [n-(o?1:2),c]}function Nt(e){let t=e?.mrz,r=Ee(e)[1]+1,i=Q(t.split(\"\"),[\"<\"],r);return [r-1,i]}function Fr(e){let t=e?.mrz,r=Nt(e)[1]+1,i=Q(t.split(\"\"),[\"<\"],r);return [r-1,i]}function Ur(e){let t=e?.mrz,i=t.length==90?60:5,n=Q(t.split(\"\"),[\"<\",\"<\"],i);return [i,n+2]}function Ve(e){let r=(e?.mrz).length==90;return [r?60:5,r?90:44]}function We(e){let r=(e?.mrz).length==90;return [r?30:57,r?36:63]}function ze(e){let r=(e?.mrz).length==90;return [r?5:44,r?14:53]}function xt(e){let r=(e?.mrz).length==90;return [r?45:54,r?48:57]}function Xr(e){let r=(e?.mrz).slice(...xt(e));return r===\"D<<\"?\"DEU\":r}function Lr(e){let r=(e?.mrz).length==90;return [r?38:65,r?44:71]}function Vr(e){let r=(e?.mrz).length==90;return [r?37:64,r?38:65]}var Qe=class e{constructor(t){this.tree=t;}static async create(){let t=await er(()=>fetch(\"https://cdn.zkpassport.id/sanctions/all_sanctions_tree.json.gz\",{headers:{\"Accept-Encoding\":\"gzip\"}})).then(i=>i.json()),r=await ce.fromSerialized(t,R);return new e(r)}getRootHash(){return Buffer.from(this.tree.root.toString(16).padStart(64,\"0\"),\"hex\")}getRoot(){return `0x${this.tree.root.toString(16).padStart(64,\"0\")}`}async getSanctionsMerkleProofs(t,r){let{name1Hash:i,name2Hash:n,name3Hash:o,name1AndDOBHash:c,name2AndDOBHash:a,name3AndDOBHash:s,name1AndYobHash:d,name2AndYobHash:l,name3AndYobHash:u,documentNumberAndNationalityHash:m}=await C1(t),g=r?this.tree.createNonMembershipProof(i):this.tree.createNonMembershipProof(1n),h=r?this.tree.createNonMembershipProof(n):this.tree.createNonMembershipProof(1n),N=r?this.tree.createNonMembershipProof(o):this.tree.createNonMembershipProof(1n),B=this.tree.createNonMembershipProof(c),H=this.tree.createNonMembershipProof(a),J=this.tree.createNonMembershipProof(s),z=this.tree.createNonMembershipProof(d),ee=this.tree.createNonMembershipProof(l),te=this.tree.createNonMembershipProof(u),A=this.tree.createNonMembershipProof(m),qe=this.getRoot(),re={name_proofs:[g,h,N],name_and_dob_proofs:[B,H,J],name_and_yob_proofs:[z,ee,te],passport_no_and_nationality_proof:A};return {proofs:{name_proofs:re.name_proofs.map(j=>je(j)),name_and_dob_proofs:re.name_and_dob_proofs.map(j=>je(j)),name_and_yob_proofs:re.name_and_yob_proofs.map(j=>je(j)),passport_no_and_nationality_proof:je(re.passport_no_and_nationality_proof)},root:qe}}async getSanctionsEvmParameterCommitment(t){let r=this.getRootHash(),i=Array.from(r).map(a=>Number(a)),n=x(i,32),o=sha256(new Uint8Array([9,...b(f[9].evm,2),...n,t?1:0]));return M(o,31)}async getSanctionsParameterCommitment(t){let r=this.getRootHash();return await poseidon2HashAsync([BigInt(9),BigInt(f[9].standard),BigInt(`0x${r.toString(\"hex\")}`),t?1n:0n])}};function je(e){let t=e.left?.proof,r=e.right?.proof;return {left:{leaf:`0x${t?.leaf.toString(16).padStart(64,\"0\")}`,leaf_index:`0x${t?.leafIndex.toString(16).padStart(64,\"0\")}`,sibling_path:t?.siblings.map(i=>`0x${i.toString(16).padStart(64,\"0\")}`)??[]},right:{leaf:`0x${r?.leaf.toString(16).padStart(64,\"0\")}`,leaf_index:`0x${r?.leafIndex.toString(16).padStart(64,\"0\")}`,sibling_path:r?.siblings.map(i=>`0x${i.toString(16).padStart(64,\"0\")}`)??[]}}}function Mt(e){let t=e,r=e.match(/[A-Z]<<[A-Z]/)?.index??-1;return r<0&&(r=e.match(/[A-Z]<[A-Z]/)?.index??-1,r>=0&&(t=e.slice(0,r+1)+\"<<\"+e.slice(r+2,-1))),t}function y1(e){let[t,r]=Ve(e),i=Math.min(Ee(e)[1],r);i<0&&(i=r);let n=e.mrz.slice(t,i).padEnd(39,\"<\"),o=i===r?r:Math.min(Nt(e)[1],r);o<0&&(o=r);let c=e.mrz.slice(t,o).padEnd(39,\"<\"),a=o===r?r:Math.min(Fr(e)[1],r);a<0&&(a=r);let s=e.mrz.slice(t,a).padEnd(39,\"<\");return [Mt(n),Mt(c),Mt(s)]}async function C1(e){let[t,r,i]=y1(e),n=$(t),o=$(r),c=$(i),a=await R(n),s=await R(o),d=await R(c),l=$(e.mrz.slice(...We(e))),u=$(e.mrz.slice(...ze(e))),m=$(Xr(e)),g=[...n,...l],h=[...n,...l.slice(0,2)],N=[...o,...l],B=[...o,...l.slice(0,2)],H=[...c,...l],J=[...c,...l.slice(0,2)],z=[...u,...m],ee=await R(g),te=await R(h),A=await R(N),qe=await R(B),re=await R(H),Gt=await R(J),j=await R(z);return {name1Hash:a,name2Hash:s,name3Hash:d,name1AndDOBHash:ee,name1AndYobHash:te,name2AndDOBHash:A,name2AndYobHash:qe,name3AndDOBHash:re,name3AndYobHash:Gt,documentNumberAndNationalityHash:j}}var $e=[\"SHA1\",\"SHA256\",\"SHA384\",\"SHA512\"],Yr=[\"SHA-1\",\"SHA-256\",\"SHA-384\",\"SHA-512\"];function en(e,t){let r=Le(e);if(!r)return false;if(t===\"ECDSA\")try{return !!fe(r.subjectPublicKeyInfo).curve}catch{return false}else if(t===\"RSA\"){let i=ae(r.subjectPublicKeyInfo),n=Me(i.modulus);return (n===1024||n===2048||n===3072||n===4096)&&i.exponent<131072n}return false}function Dd(e){return e.signature_algorithm==\"RSA\"?(e.public_key.key_size===1024||e.public_key.key_size===2048||e.public_key.key_size===3072||e.public_key.key_size===4096)&&e.public_key.exponent<131072&&Yr.includes(e.hash_algorithm):e.signature_algorithm==\"RSA-PSS\"||e.signature_algorithm==\"ECDSA\"?Yr.includes(e.hash_algorithm):false}function Nd(e){let t=Dt(e);return !!t&&$e.includes(t)}function xd(e){let t=Pe(e);return en(e,t)&&e.sod.digestAlgorithms.every(r=>$e.includes(r))&&$e.includes(e.sod.encapContentInfo.eContent.hashAlgorithm)&&$e.includes(e.sod.signerInfo.digestAlgorithm)}function kt(e){let t=e.sod.certificate.tbs.bytes.length;return t<=700?700:t<=1e3?1e3:t<=1200?1200:1600}function Md(e,t){let{akiMatchedCert:r}=Jr(e,t);return r}function Jr(e,t,r=false){let i=e.tbs.extensions,n,o=i.get(\"authorityKeyIdentifier\")?.value.toBuffer();if(o){let m=AsnParser.parse(o,AuthorityKeyIdentifier);m?.keyIdentifier?.buffer&&(n=p.from(m.keyIdentifier.buffer).toHex().replace(\"0x\",\"\"));}let c=Ht(e),a=c===\"D<<\"?\"DEU\":c,s=m=>n&&m.subject_key_identifier?.replace(\"0x\",\"\")===n,d=t.filter(m=>m.country.toLowerCase()===a.toLowerCase()),l=r?[]:d.filter(s),u=null;if(l.length===1)u=l[0];else if(l.length>1){let m=g=>g.signature_algorithm===\"RSA-PSS\"?e.signatureAlgorithm.name.toLowerCase().includes(\"pss\"):g.signature_algorithm===\"RSA\"?e.signatureAlgorithm.name.toLowerCase().includes(\"rsa\"):g.signature_algorithm===\"ECDSA\"?e.signatureAlgorithm.name.toLowerCase().includes(\"ecdsa\"):false;u=l.find(g=>g.hash_algorithm.replace(\"-\",\"\").toLowerCase()===Dt(e)?.toLowerCase()&&m(g))??l[0];}return {akiMatchedCert:u,countryCerts:d,formattedCountry:a}}async function tn(e,t,r=false){let{verifyDscSignature:i}=await Promise.resolve().then(()=>(Ot(),qr)),{akiMatchedCert:n,countryCerts:o}=Jr(e,t,r);if(n)try{if(await i(e,n))return n}catch{}for(let c of o)if(c!==n)try{if(await i(e,c))return c}catch{}return n}function ei(e,t){let r=Pe(e),i=Le(e);if(!i)return null;if(r===\"ECDSA\"){let n=fe(i.subjectPublicKeyInfo),o=Array.from(n.publicKey.slice(1,(n.publicKey.length-1)/2+1)),c=Array.from(n.publicKey.slice((n.publicKey.length-1)/2+1));return {tbs_certificate:P(e?.sod.certificate.tbs.bytes.toNumberArray()??[],t),dsc_pubkey_x:o,dsc_pubkey_y:c}}else {let{modulus:n,exponent:o}=ae(i.subjectPublicKeyInfo),c=Me(n),a=x(Be(n),Math.ceil(c/8));return {dsc_pubkey:a,exponent:$t(o),dsc_pubkey_redc_param:x(Ye(a),Math.ceil(c/8)+1),tbs_certificate:P(e?.sod.certificate.tbs.bytes.toNumberArray()??[],t)}}}async function v(e){let t=e?.dataGroups.find(c=>c.groupNumber===1),r=e?.dataGroups.find(c=>c.groupNumber===2),i=e?.sod.encapContentInfo.eContent.bytes.toNumberArray(),n=e.sod.signerInfo.signedAttrs.bytes.toNumberArray();return {e_content:P(i??[],D),signed_attributes:P(n??[],At),dg1:P(t?.value??[],S),dg2_hash_normalized:await mr(r?.hash??[]),dg2_hash_type:Jt(r?.hash.length??0)}}function Zr(e,t){let r=ut(e),i=t.n/2n;if(r>i){let n=t.n-r;return Be(n)}return e}function ti(e,t,r){if(e.length===t*2){let d=e.slice(0,t),l=Zr(e.slice(t),r);return [...x(d,t),...x(l,t)]}if(e[0]!==48)return e;let i=e[1]==e.length-2?1:2,n=e[i];if(e[i+1]!==2||n!==e.length-i-1)return e;let o=e[i+2],c=e.slice(i+3,i+3+o);if(e[i+3+o]!==2)return e;let a=e[i+3+o+1],s=e.slice(i+3+o+2,i+3+o+2+a);for(let d=0;d<c.length;d++)if(c[d]!==0){c=c.slice(d);break}for(let d=0;d<s.length;d++)if(s[d]!==0){s=s.slice(d);break}return s=Zr(s,r),c=x(c,t),s=x(s,t),[...c,...s]}function ri(e){if(!e)return 0n;let t=sha256(new TextEncoder().encode(e)).slice(0,31);return ut(Array.from(t))}function Bd(e){return ri(e)}function _d(e){return ri(e)}function w(e,t){if(Pe(t)===\"ECDSA\"){let i=Le(t);if(!i)return [];let o=fe(i.subjectPublicKeyInfo).curve,c=bt(o);return ti(e,Math.ceil(c/8),Ct(o))}else return e}function rn(e){let t=e.sod.certificate.signatureAlgorithm.name.toLowerCase();return t.includes(\"sha1\")?\"sha1\":t.includes(\"sha224\")?\"sha224\":t.includes(\"sha256\")?\"sha256\":t.includes(\"sha384\")?\"sha384\":t.includes(\"sha512\")?\"sha512\":\"sha256\"}async function Rd(e,t,r,i,n){let o=await tn(e.sod.certificate,r.certificates);if(!o)throw new Error(\"Could not find CSCA for DSC\");let c=await at(o),a=i??await ct(r.certificates,r?.version||0),s=a.findIndex(g=>g===c),d=De(o.tags??[]),l=n??await Ne(a,s,Je),u={certificate_registry_root:l.root,certificate_registry_index:l.index,certificate_registry_hash_path:l.path,certificate_tags:d.map(g=>`0x${g.toString(16)}`),certificate_type:`0x${ot.toString(16)}`,country:o.country,salt:`0x${t.toString(16)}`},m=kt(e);if(o.public_key.type===\"EC\"){let g=Buffer.from(o.public_key.public_key_x.replace(\"0x\",\"\"),\"hex\"),h=Buffer.from(o.public_key.public_key_y.replace(\"0x\",\"\"),\"hex\"),N=o.public_key.curve,B=bt(N),H=ti(e?.sod.certificate.signature.toNumberArray()??[],Math.ceil(B/8),Ct(N));return {...u,csc_pubkey_x:Array.from(g),csc_pubkey_y:Array.from(h),dsc_signature:H,tbs_certificate:P(e?.sod.certificate.tbs.bytes.toNumberArray()??[],m)}}else if(o.public_key.type===\"RSA\"){let g=Me(BigInt(o.public_key.modulus)),h=x(Be(BigInt(o.public_key.modulus)),Math.ceil(g/8)),N=(()=>{if(o.signature_algorithm===\"RSA-PSS\"){let B=rn(e).toUpperCase().replace(\"SHA\",\"SHA-\"),H=B?mt(B):32;return (e.sod.certificate.signatureAlgorithm.parameters?oe(e.sod.certificate.signatureAlgorithm.parameters?.toBuffer()):null)?.saltLength??H}return 0})();return {...u,tbs_certificate:P(e?.sod.certificate.tbs.bytes.toNumberArray()??[],m),dsc_signature:e?.sod.certificate.signature.toNumberArray()??[],csc_pubkey:h,csc_pubkey_redc_param:x(Ye(h),Math.ceil(g/8)+1),exponent:o.public_key.exponent,pss_salt_len:N}}}function nn(e){let t=e.sod.signerInfo.signatureAlgorithm.name.toLowerCase(),r=e.sod.signerInfo.digestAlgorithm.toLowerCase().replace(\"-\",\"\");return t.includes(\"sha1\")?\"sha1\":t.includes(\"sha224\")?\"sha224\":t.includes(\"sha256\")?\"sha256\":t.includes(\"sha384\")?\"sha384\":t.includes(\"sha512\")?\"sha512\":r}async function vd(e,t,r){let i=await v(e),n=kt(e),o=ei(e,n);if(!o||!i)return null;let c=await ur(t,Ht(e.sod.certificate),e.sod.certificate.tbs.bytes,n),a={dg1:i.dg1,signed_attributes:i.signed_attributes,comm_in:c.toHex(),salt_in:`0x${t.toString(16)}`,salt_out:`0x${r.toString(16)}`,e_content:i.e_content},s=Pe(e);if(s===\"ECDSA\")return {...a,tbs_certificate:o.tbs_certificate,dsc_pubkey_x:o.dsc_pubkey_x,dsc_pubkey_y:o.dsc_pubkey_y,sod_signature:w(e?.sod.signerInfo.signature.toNumberArray()??[],e),signed_attributes:i.signed_attributes};if(s===\"RSA\"){let d=o.dsc_pubkey.length,l=(()=>{if(e.sod.signerInfo.signatureAlgorithm.name.toLowerCase().includes(\"pss\")){let u=nn(e).toUpperCase().replace(\"SHA\",\"SHA-\");return (e.sod.signerInfo.signatureAlgorithm.parameters?oe(e.sod.signerInfo.signatureAlgorithm.parameters?.toBuffer()):null)?.saltLength??mt(u)}return 0})();return {...a,dsc_pubkey:o.dsc_pubkey,exponent:o.exponent,sod_signature:x(e?.sod.signerInfo.signature.toNumberArray()??[],d),dsc_pubkey_redc_param:o.dsc_pubkey_redc_param,tbs_certificate:o.tbs_certificate,signed_attributes:i.signed_attributes,pss_salt_len:l}}}function Ht(e){let t=e.tbs.issuer?.match(/countryName=([A-Za-z]+)/)?.[1];return (t?.length===2?ge(t):t)??e.tbs.subject.match(/countryName=([A-Za-z]+)/)?.[1]??\"\"}async function wd(e,t,r){let i=kt(e);if(!ei(e,i))return null;let o=await v(e);if(!o)return null;let c=await _(p.from(o.dg1).padEnd(S),p.from(o.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),a=e?.sod.signerInfo.signedAttrs.bytes.toNumberArray(),s=await pr(t,Ht(e.sod.certificate),p.from(a).padEnd(At),BigInt(a.length),p.from(o.dg1).padEnd(S),p.from(o.e_content).padEnd(D),c.toBigInt()),d=E.fromValue(r.dg1Salt,o.dg1),l=E.fromValue(r.privateNullifierSalt,c.toBigInt());return {salted_dg1:d.formatForInput(),salted_private_nullifier:l.formatForInput(),expiry_date_salt:`0x${r.expiryDateSalt.toString(16)}`,dg2_hash_salt:`0x${r.dg2HashSalt.toString(16)}`,signed_attributes:o.signed_attributes,e_content:o.e_content,comm_in:s.toHex(),salt_in:`0x${t.toString(16)}`}}async function F(e,t,r,i,n=false){let o=E.fromValue(i.dg1Salt,t.dg1),c=E.fromValue(i.privateNullifierSalt,r.toBigInt()),a=E.fromValue(i.expiryDateSalt,e.passportExpiry.split(\"\").map(l=>l.charCodeAt(0))),s=E.fromValue(i.dg2HashSalt,t.dg2_hash_normalized),d=E.fromValue(i.dg2HashSalt,BigInt(t.dg2_hash_type));return {salted_dg1:n?E.fromHash(await o.getHash(),Array.from({length:95},()=>0)).formatForInput():o.formatForInput(),salted_private_nullifier:n?E.fromHash(await c.getHash(),0n).formatForInput():c.formatForInput(),salted_expiry_date:a.formatForInput(),salted_dg2_hash:s.formatForInput(),salted_dg2_hash_type:d.formatForInput()}}async function Kd(e,t,r,i=0n,n=0n,o=0n,c){let a=await v(e);if(!a)return null;let s=await _(p.from(a.dg1).padEnd(S),p.from(a.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),d=await O(r,p.from(a.dg1).padEnd(S),e.passportExpiry,a.dg2_hash_normalized,a.dg2_hash_type,s.toBigInt()),l=Array(90).fill(0),u={};for(let m in t)(t[m]?.disclose||t[m]?.eq)&&(u[m]=true);for(let m in u)if(u[m])switch(m){case \"firstname\":{let g=Ee(e);l.fill(1,g[0],g[1]);break}case \"lastname\":{let g=Ur(e);l.fill(1,g[0],g[1]);break}case \"fullname\":{let g=Ve(e);l.fill(1,g[0],g[1]);break}case \"birthdate\":{let g=We(e);l.fill(1,g[0],g[1]);break}case \"document_number\":{let g=ze(e);l.fill(1,g[0],g[1]);break}case \"nationality\":{let g=xt(e);l.fill(1,g[0],g[1]);break}case \"document_type\":{l.fill(1,0,2);break}case \"expiry_date\":{let g=Lr(e);l.fill(1,g[0],g[1]);break}case \"gender\":{let g=Vr(e);l.fill(1,g[0],g[1]);break}case \"issuing_country\":{l.fill(1,2,5);break}}return {current_date:c,...await F(e,a,s,r),disclose_mask:l,comm_in:d.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,nullifier_secret:`0x${i.toString(16)}`}}function on(e){let t=e.dateOfBirth;if(!t)return 0;let r=K(new TextEncoder().encode(t)),i=new Date,n=i.getFullYear()-r.getFullYear(),o=i.getMonth()-r.getMonth();return (o<0||o===0&&i.getDate()<r.getDate())&&n--,n}async function Od(e,t,r,i=0n,n=0n,o=0n,c){let a=await v(e);if(!a)return null;let s=await _(p.from(a.dg1).padEnd(S),p.from(a.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),d=await O(r,p.from(a.dg1).padEnd(S),e.passportExpiry,a.dg2_hash_normalized,a.dg2_hash_type,s.toBigInt()),l=on(e),u=0,m=0;return t.age&&(t.age.gt?u=t.age.gt+1:t.age.gte?u=t.age.gte:t.age.range?(u=t.age.range[0],m=t.age.range[1]):t.age.eq?(u=t.age.eq,m=t.age.eq):t.age.disclose&&(u=l,m=l),t.age.lt?m=t.age.lt-1:t.age.lte&&(m=t.age.lte)),{...await F(e,a,s,r),current_date:c,comm_in:d.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,min_age_required:u,max_age_required:m,nullifier_secret:`0x${i.toString(16)}`}}function ii(e){let t=Array(200).fill(new TextDecoder().decode(new Uint8Array([0,0,0])));for(let r=0;r<e.length;r++)t[r]=e[r];return t}async function kd(e,t,r,i=0n,n=0n,o=0n,c){let a=await v(e);if(!a)return null;let s=await _(p.from(a.dg1).padEnd(S),p.from(a.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),d=await O(r,p.from(a.dg1).padEnd(S),e.passportExpiry,a.dg2_hash_normalized,a.dg2_hash_type,s.toBigInt());return {...await F(e,a,s,r),country_list:ii(t.nationality?.in??[]),current_date:c,comm_in:d.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,nullifier_secret:`0x${i.toString(16)}`}}async function Hd(e,t,r,i=0n,n=0n,o=0n,c){let a=await v(e);if(!a)return null;let s=await _(p.from(a.dg1).padEnd(S),p.from(a.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),d=await O(r,p.from(a.dg1).padEnd(S),e.passportExpiry,a.dg2_hash_normalized,a.dg2_hash_type,s.toBigInt());return {...await F(e,a,s,r),country_list:ii(t.issuing_country?.in??[]),current_date:c,comm_in:d.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,nullifier_secret:`0x${i.toString(16)}`}}async function Gd(e,t,r,i=0n,n=0n,o=0n,c){let a=await v(e);if(!a)return null;let s=await _(p.from(a.dg1).padEnd(S),p.from(a.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),d=await O(r,p.from(a.dg1).padEnd(S),e.passportExpiry,a.dg2_hash_normalized,a.dg2_hash_type,s.toBigInt()),l=[];for(let u=0;u<(t.nationality?.out??[]).length;u++){let m=(t.nationality?.out??[])[u];l.push(Re(m));}return {...await F(e,a,s,r),current_date:c,country_list:P(l.sort((u,m)=>u-m),200),comm_in:d.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,nullifier_secret:`0x${i.toString(16)}`}}async function Fd(e,t,r,i=0n,n=0n,o=0n,c){let a=await v(e);if(!a)return null;let s=await _(p.from(a.dg1).padEnd(S),p.from(a.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),d=await O(r,p.from(a.dg1).padEnd(S),e.passportExpiry,a.dg2_hash_normalized,a.dg2_hash_type,s.toBigInt()),l=[];for(let u=0;u<(t.issuing_country?.out??[]).length;u++){let m=(t.issuing_country?.out??[])[u];l.push(Re(m));}return {...await F(e,a,s,r),current_date:c,country_list:P(l.sort((u,m)=>u-m),200),comm_in:d.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,nullifier_secret:`0x${i.toString(16)}`}}async function Ud(e,t,r,i=0n,n=0n,o=0n,c,a){let s=await v(e);if(!s)return null;let d=await _(p.from(s.dg1).padEnd(S),p.from(s.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),l=await O(r,p.from(s.dg1).padEnd(S),e.passportExpiry,s.dg2_hash_normalized,s.dg2_hash_type,d.toBigInt());a=a??await Qe.create();let{proofs:u,root:m}=await a.getSanctionsMerkleProofs(e,t);return {...await F(e,s,d,r),current_date:c,comm_in:l.toHex(),proofs:u,is_strict:t?1:0,root:m,service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,nullifier_secret:`0x${i.toString(16)}`}}async function Xd(e,t,r,i=0n,n=0n,o=0n,c){let a=await v(e);if(!a)return null;let s=await _(p.from(a.dg1).padEnd(S),p.from(a.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),d=await O(r,p.from(a.dg1).padEnd(S),e.passportExpiry,a.dg2_hash_normalized,a.dg2_hash_type,s.toBigInt()),l,u;if(t.birthdate){if(t.birthdate.gt){let m=new Date(t.birthdate.gt);l=new Date(m.setDate(m.getDate()+1));}else t.birthdate.gte?l=t.birthdate.gte:t.birthdate.range?(l=t.birthdate.range[0],u=t.birthdate.range[1]):t.birthdate.eq?(l=t.birthdate.eq,u=t.birthdate.eq):t.birthdate.disclose&&(l=K(new TextEncoder().encode(e.dateOfBirth)),u=K(new TextEncoder().encode(e.dateOfBirth)));if(t.birthdate.lt){let m=new Date(t.birthdate.lt);u=new Date(m.setDate(m.getDate()-1));}else t.birthdate.lte&&(u=t.birthdate.lte);}return {...await F(e,a,s,r),current_date:c,comm_in:d.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,min_date:l?ue(l)+Y:0,max_date:u?ue(u)+Y:0,nullifier_secret:`0x${i.toString(16)}`}}async function Ld(e,t,r,i=0n,n=0n,o=0n,c){let a=await v(e);if(!a)return null;let s=await _(p.from(a.dg1).padEnd(S),p.from(a.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),d=await O(r,p.from(a.dg1).padEnd(S),e.passportExpiry,a.dg2_hash_normalized,a.dg2_hash_type,s.toBigInt()),l,u;if(t.expiry_date){if(t.expiry_date.gt){let m=new Date(t.expiry_date.gt);l=new Date(m.setDate(m.getDate()+1));}else t.expiry_date.gte?l=t.expiry_date.gte:t.expiry_date.range?(l=t.expiry_date.range[0],u=t.expiry_date.range[1]):t.expiry_date.eq?(l=t.expiry_date.eq,u=t.expiry_date.eq):t.expiry_date.disclose&&(l=K(new TextEncoder().encode(e.passportExpiry)),u=K(new TextEncoder().encode(e.passportExpiry)));if(t.expiry_date.lt){let m=new Date(t.expiry_date.lt);u=new Date(m.setDate(m.getDate()-1));}else t.expiry_date.lte&&(u=t.expiry_date.lte);}return {...await F(e,a,s,r),current_date:c,comm_in:d.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,min_date:l?ue(l):0,max_date:u?ue(u):0,nullifier_secret:`0x${i.toString(16)}`}}async function Vd(e,t,r,i=0n,n=0n,o=0n,c,a=false){let s=await v(e);if(!s)return null;let d=await _(p.from(s.dg1).padEnd(S),p.from(s.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),l=await O(r,p.from(s.dg1).padEnd(S),e.passportExpiry,s.dg2_hash_normalized,s.dg2_hash_type,d.toBigInt()),u=sr(t.bind??{});return {...await F(e,s,d,r,a),current_date:c,comm_in:l.toHex(),data:P(u,509),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,nullifier_secret:`0x${i.toString(16)}`}}async function Wd(e,t,r,i=0n,n=0n,o=0n,c,a=false){let s=await v(e);if(!s)throw new Error(\"Error getting ID data inputs\");let d=await _(p.from(s.dg1).padEnd(S),p.from(s.e_content).padEnd(D),p.from(w(e?.sod.signerInfo.signature.toNumberArray()??[],e))),l=await O(r,p.from(s.dg1).padEnd(S),e.passportExpiry,s.dg2_hash_normalized,s.dg2_hash_type,d.toBigInt());if(!t.facematch)throw new Error(\"Facematch query is required\");return {...await F(e,s,d,r,a),current_date:c,comm_in:l.toHex(),service_scope:`0x${n.toString(16)}`,service_subscope:`0x${o.toString(16)}`,facematch_mode:t.facematch.mode===\"regular\"?1:2,environment:1,nullifier_secret:`0x${i.toString(16)}`}}function an(e,t=0){let r=[];for(let i=t;i<e.length;i+=32){let n=new Uint8Array(32),o=Math.min(i+32,e.length);for(let c=0;c<o-i;c++)n[c]=e[i+c];r.push(Buffer.from(n));}return r.map(i=>i.toString(\"hex\"))}function cn(e,t){return e.slice(0,t)}function sn(e,t){return e.slice(t)}function Yd(e){if(e.length!==112)throw new Error(\"The verification key must be 112 fields\");return Number(e[1])}function Zd(e,t,r=0){let i=an(Buffer.from(e,\"hex\"),r),n=sn(i,t),o=cn(i,t);return {proof:n,publicInputs:o.map(c=>c.startsWith(\"0x\")?c:`0x${c}`)}}function dn(e){return e.find(t=>BigInt(t.publicInputs[6])!==0n)}function r2(e,t,r,i,n){let o=dn(i);if(!o)throw new Error(\"No disclosure proof with non-zero nullifier found\");let c=e.publicInputs[0],a=Number(BigInt(o.publicInputs[1])),s=o.publicInputs[2],d=o.publicInputs[3],l=o.publicInputs[5],u=o.publicInputs[6],m=i.map(g=>g.publicInputs[4]);return {certificate_registry_root:c,circuit_registry_root:n,current_date:a,service_scope:s,service_subscope:d,param_commitments:m,scoped_nullifier:u,nullifier_type:l,csc_to_dsc_proof:{vkey:e.vkey,proof:e.proof,public_inputs:e.publicInputs.slice(1),key_hash:e.keyHash,tree_hash_path:e.treeHashPath,tree_index:e.treeIndex},dsc_to_id_data_proof:{vkey:t.vkey,proof:t.proof,public_inputs:t.publicInputs,key_hash:t.keyHash,tree_hash_path:t.treeHashPath,tree_index:t.treeIndex},integrity_check_proof:{vkey:r.vkey,proof:r.proof,public_inputs:r.publicInputs,key_hash:r.keyHash,tree_hash_path:r.treeHashPath,tree_index:r.treeIndex},disclosure_proofs:i.map(g=>({vkey:g.vkey,proof:g.proof,public_inputs:[g.publicInputs[0],g.publicInputs[6]],key_hash:g.keyHash,tree_hash_path:g.treeHashPath,tree_index:g.treeIndex}))}}function i2(e){return BigInt(e.publicInputs[0])}function n2(e){return BigInt(e.publicInputs[1])}function o2(e){return new Date(Number(BigInt(e.publicInputs[2]))*1e3)}function a2(e){return BigInt(e.publicInputs[3])}function c2(e){return BigInt(e.publicInputs[4])}function s2(e){let t=BigInt(e.publicInputs[e.publicInputs.length-2]);if(t===0n)return 0;if(t===1n)return 1;if(t===2n)return 2;if(t===3n)return 3;throw new Error(\"Invalid nullifier type\")}function d2(e){return BigInt(e.publicInputs[e.publicInputs.length-1])}function l2(e){return e.publicInputs.slice(5,e.publicInputs.length-2).map(BigInt)}if(typeof window>\"u\")try{let e=oi(\"crypto\");crypto=e;}catch{}function f2(e=2048){if(!crypto)throw new Error(\"Crypto functionality is not available in this environment\");let{privateKey:t,publicKey:r}=crypto.generateKeyPairSync(\"rsa\",{modulusLength:e,privateKeyEncoding:{type:\"pkcs8\",format:\"pem\"},publicKeyEncoding:{type:\"pkcs1\",format:\"der\"}});return {privateKey:t,publicKey:r}}function S2(e){let t=AsnParser.parse(e,RSAPublicKey);return {modulus:pt(t.modulus),exponent:Number(pt(t.publicExponent))}}function h2(e,t,r=\"RSA-SHA256\"){if(!crypto)throw new Error(\"Crypto functionality is not available in this environment\");let i=crypto.createSign(r);return i.update(t),i.sign(e)}function y2(e,t,r,i=\"SHA256\"){if(!crypto)throw new Error(\"Crypto functionality is not available in this environment\");let n=crypto.createVerify(i);return n.update(t),n.end(),n.verify(e,r)}Ot();\nexport{Ic as ASEAN_COUNTRIES,Qt as AggregateError,He as AsyncIMT,ce as AsyncOrderedMT,y as BRAINPOOL_CURVES,Sr as BRAINPOOL_CURVES_ABBR,p as Binary,ki as BoundDataIdentifier,Je as CERTIFICATE_REGISTRY_HEIGHT,Dn as CERTIFICATE_REGISTRY_ID,ot as CERT_TYPE_CSCA,Tn as CERT_TYPE_DSC,zt as CIRCUIT_REGISTRY_HEIGHT,Nn as CIRCUIT_REGISTRY_ID,ht as CURVE_OIDS,Dr as CURVE_TO_KEYSIZE,S as DG1_INPUT_SIZE,Ae as DSC,St as DisclosedData,bc as EEA_COUNTRIES,vr as EU_COUNTRIES,D as E_CONTENT_INPUT_SIZE,et as HASH_ALGORITHM_SHA1,tt as HASH_ALGORITHM_SHA224,rt as HASH_ALGORITHM_SHA256,it as HASH_ALGORITHM_SHA384,nt as HASH_ALGORITHM_SHA512,ne as HASH_OIDS,Pc as MERCOSUR_COUNTRIES,I as NIST_CURVES,gt as NullifierType,Za as OIDS_TO_DESCRIPTION,yt as OIDS_TO_PUBKEY_TYPE,Oe as OIDS_TO_SIG_ALGORITHM,Ze as PACKAGED_CERTIFICATE_TAGS,Gr as PassportReader,st as PromisePool,q as ProofType,f as ProofTypeLength,gr as RSA_OIDS,Cc as SANCTIONED_COUNTRIES,Ac as SCHENGEN_COUNTRIES,Y as SECONDS_BETWEEN_1900_AND_1970,At as SIGNED_ATTR_INPUT_SIZE,fr as SIG_ALGORITHM_TO_HASH,Ie as SOD,E as SaltedValue,Qe as SanctionsBuilder,Zn as areDatesEqual,ie as assert,Be as bigintToBytes,$t as bigintToNumber,Bn as bitsFlagToTagsArray,jt as buildMerkleTreeFromCerts,Mn as byteFlagToTagsArray,on as calculateAge,Rn as calculateCertificateRoot,wn as calculateCircuitRoot,vn as calculatePackagedCertificatesRoot,_ as calculatePrivateNullifier,Si as cidv0ToHex,Ne as computeMerkleProof,Sc as convertPemToPackagedCertificate,hc as convertPemToPackagedCertificates,ge as countryCodeAlpha2ToAlpha3,tc as countryCodeAlpha2ToName,ec as countryCodeAlpha3ToAlpha2,rc as countryCodeAlpha3ToName,Di as createDisclosedDataRaw,Ue as decodeOID,fc as derToPem,Le as extractTBS,_r as formatAbbreviatedDN,sr as formatBoundData,L as formatDate,U as formatName,to as formatQueryResultDates,pt as fromArrayBufferToBigInt,ut as fromBytesToBigInt,jn as fromHex,f2 as generateRSAKeyPair,qi as getAbbreviatedCurveName,Od as getAgeCircuitInputs,Mo as getAgeEVMParameterCommitment,xo as getAgeParameterCommitment,Ar as getAuthorityKeyId,Vd as getBindCircuitInputs,da as getBindEVMParameterCommitment,sa as getBindParameterCommitment,Xd as getBirthdateCircuitInputs,zo as getBirthdateMaxDateTimestamp,Wo as getBirthdateMinDateTimestamp,Me as getBitSize,bt as getBitSizeFromCurve,ca as getBoundDataFromCommittedInputs,mc as getCertificateIssuer,Yi as getCertificateIssuerCountry,at as getCertificateLeafHash,ct as getCertificateLeafHashes,i2 as getCertificateRegistryRootFromOuterProof,gc as getCertificateSubject,Yn as getChainDisplayName,qn as getChainFromId,Kn as getCircuitMerkleProof,n2 as getCircuitRegistryRootFromOuterProof,uo as getCommitmentFromDSCProof,Ra as getCommitmentInFromDisclosureProof,qo as getCommitmentInFromIDDataProof,mo as getCommitmentInFromIntegrityProof,Yo as getCommitmentOutFromIDDataProof,go as getCommitmentOutFromIntegrityProof,Ha as getCommittedInputCount,Go as getCountryEVMParameterCommitment,Oo as getCountryFromWeightedSum,ko as getCountryListFromCommittedInputs,Ho as getCountryParameterCommitment,Re as getCountryWeightedSum,Md as getCscaForPassport,tn as getCscaForPassportAsync,va as getCurrentDateFromDisclosureProof,o2 as getCurrentDateFromOuterProof,Br as getCurveName,Ct as getCurveParams,Rd as getDSCCircuitInputs,Ht as getDSCCountry,rr as getDSCProofPublicInputCount,rn as getDSCSignatureAlgorithmHashAlgorithm,Ks as getDSCSignatureAlgorithmType,Dt as getDSCSignatureHashAlgorithm,Ga as getDateBytes,Qo as getDateEVMParameterCommitment,jo as getDateParameterCommitment,Kd as getDiscloseCircuitInputs,xi as getDiscloseEVMParameterCommitment,Ni as getDiscloseParameterCommitment,Ei as getDisclosedBytesFromMrzAndMask,fe as getECDSAInfo,f1 as getEContent,_s as getEContentHashAlgorithm,Ld as getExpiryDateCircuitInputs,Wd as getFacematchCircuitInputs,Sa as getFacematchEvmParameterCommitment,fa as getFacematchParameterCommitment,Xi as getFormattedDate,Nr as getHashAlgorithm,_n as getHashAlgorithmIdentifier,Jt as getHashAlgorithmIdentifierFromLength,mt as getHashAlgorithmLength,Fe as getHashAlgorithmName,Oa as getHostedPackagedCircuitByName,wa as getHostedPackagedCircuitByNameAndHash,Ka as getHostedPackagedCircuitByVkeyHash,vd as getIDDataCircuitInputs,ar as getIDDataProofPublicInputCount,Zt as getIdFromChain,wd as getIntegrityCheckCircuitInputs,ir as getIntegrityProofPublicInputCount,Fd as getIssuingCountryExclusionCircuitInputs,Hd as getIssuingCountryInclusionCircuitInputs,Ji as getKeySize,Zi as getKeySizeFromCurve,Ci as getLeavesFromCircuitManifest,No as getMaxAgeFromCommittedInputs,or as getMaxDateFromCommittedInputs,lo as getMerkleRootFromDSCProof,Do as getMinAgeFromCommittedInputs,nr as getMinDateFromCommittedInputs,Gd as getNationalityExclusionCircuitInputs,kd as getNationalityInclusionCircuitInputs,eo as getNowTimestamp,Na as getNullifierFromDisclosureProof,d2 as getNullifierFromOuterProof,xa as getNullifierTypeFromDisclosureProof,s2 as getNullifierTypeFromOuterProof,ka as getNumberOfPublicInputs,ea as getNumberOfPublicInputsFromVkey,k as getOIDName,Q as getOffsetInArray,r2 as getOuterCircuitInputs,l2 as getParamCommitmentsFromOuterProof,Ma as getParameterCommitmentFromDisclosureProof,Pr as getPrivateKeyUsagePeriod,Zd as getProofData,sn as getProofWithoutPublicInputs,cn as getPublicInputs,Yd as getPublicInputsCountFromVkey,ae as getRSAInfo,oe as getRSAPSSParams,S2 as getRSAPublicKeyParams,vs as getSODCMSVersion,Xe as getSODContent,F as getSaltedValuesForDisclosureCircuit,Ud as getSanctionsExclusionCheckCircuitInputs,a2 as getScopeFromOuterProof,ri as getScopeHash,_a as getServiceScopeFromDisclosureProof,Bd as getServiceScopeHash,Ba as getServiceSubScopeFromDisclosureProof,_d as getServiceSubscopeHash,vc as getSignatureAlgorithmName,Tr as getSignatureAlgorithmType,Rs as getSignedAttributesHashingAlgorithm,pc as getSigningKeyType,nn as getSodSignatureAlgorithmHashAlgorithm,Pe as getSodSignatureAlgorithmType,ws as getSodSignatureHashAlgorithm,Ir as getSubjectKeyId,uc as getSubjectKeyIdFromSignerInfo,c2 as getSubscopeFromOuterProof,kt as getTBSMaxLen,Jn as getTodayTimestamp,ue as getUnixTimestamp,pr as hashSaltCountrySignedAttrDg1EContentPrivateNullifier,ur as hashSaltCountryTbs,O as hashSaltDg1Dg2HashPrivateNullifier,hi as hexToCidv0,io as hexToUint8Array,hr as id_authorityKeyIdentifier,Cr as id_privateKeyUsagePeriod,yr as id_subjectKeyIdentifier,Dd as isCscaSupported,Nd as isDSCSupported,xd as isIDSupported,en as isSignatureAlgorithmSupported,x as leftPadArrayWithZeros,lt as normaliseHex,mr as normalizeDg2Hash,b as numberToBytesBE,se as oids,qt as packBeBitsIntoField,M as packBeBytesIntoField,C as packBeBytesIntoFields,Ui as packLeBytesAndHashPoseidon2,Yt as packLeBytesIntoFields,_e as parseDocumentType,R as poseidon2,ti as processECDSASignature,w as processSodSignature,an as proofToFields,yi as publicKeyToBytes,mi as redcLimbs,Ye as redcLimbsFromBytes,P as rightPadArrayWithZeros,$n as rightPadCountryCodeArray,h2 as signData,$ as stringToAsciiStringArray,Qn as strip0x,De as tagsArrayToBitsFlag,xn as tagsArrayToByteFlag,Ln as toBigIntBE,Xn as toBigIntLE,Wn as toBufferBE,Vn as toBufferLE,zn as toHex,ro as uint8ArrayToHex,Jo as ultraVkToFields,$1 as verifyDscSignature,q1 as verifyDscSignatureWithTbs,wt as verifyECDSASignature,Kt as verifyRSASignature,y2 as verifySignature,er as withRetry,Rr as x509ToPackagedCertificate};","","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","import {p521,p384,p256}from'@noble/curves/nist.js';import {sha1}from'@noble/hashes/legacy.js';import {sha224,sha256}from'@noble/hashes/sha2.js';import'@noble/curves/misc.js';import {ecdsa,weierstrass}from'@noble/curves/abstract/weierstrass.js';import {poseidon2HashAsync}from'@zkpassport/poseidon2';import {format}from'date-fns';import {AsnType,AsnTypeTypes,AsnProp,AsnPropTypes,AsnArray}from'@peculiar/asn1-schema';import {Certificate}from'@peculiar/asn1-x509';import'@zk-kit/utils';import {hexToBytes}from'@noble/hashes/utils.js';import'@peculiar/asn1-ecc';import'@peculiar/asn1-rsa';import {Attribute,DigestAlgorithmIdentifier}from'@peculiar/asn1-cms';var ye=Object.defineProperty;var Ce=Object.getOwnPropertyDescriptor;var be=(t=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(t,{get:(e,r)=>(typeof require<\"u\"?require:e)[r]}):t)(function(t){if(typeof require<\"u\")return require.apply(this,arguments);throw Error('Dynamic require of \"'+t+'\" is not supported')});var q=(t,e)=>()=>(t&&(e=t(t=0)),e);var f=(t,e,r,i)=>{for(var n=i>1?void 0:i?Ce(e,r):e,o=t.length-1,a;o>=0;o--)(a=t[o])&&(n=(i?a(e,r,n):a(n))||n);return i&&n&&ye(e,r,n),n};var b,x,B=q(()=>{b={\"P-192\":{a:0xfffffffffffffffffffffffffffffffefffffffffffffffcn,b:0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1n,n:0xffffffffffffffffffffffff99def836146bc9b1b4d22831n,p:0xfffffffffffffffffffffffffffffffeffffffffffffffffn},\"P-224\":{a:0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffen,b:0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4n,n:0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3dn,p:0xffffffffffffffffffffffffffffffff000000000000000000000001n},\"P-256\":{a:p256.Point.CURVE().a,b:p256.Point.CURVE().b,n:p256.Point.CURVE().n,p:p256.Point.CURVE().p},\"P-384\":{a:p384.Point.CURVE().a,b:p384.Point.CURVE().b,n:p384.Point.CURVE().n,p:p384.Point.CURVE().p},\"P-521\":{a:p521.Point.CURVE().a,b:p521.Point.CURVE().b,n:p521.Point.CURVE().n,p:p521.Point.CURVE().p}},x={brainpoolP160r1:{a:0x340e7be2a280eb74e2be61bada745d97e8f7c300n,b:0x1e589a8595423412134faa2dbdec95c8d8675e58n,n:0xe95e4a5f737059dc60df5991d45029409e60fc09n,p:0xe95e4a5f737059dc60dfc7ad95b3d8139515620fn},brainpoolP160t1:{a:0xe95e4a5f737059dc60dfc7ad95b3d8139515620cn,b:0x7a556b6dae535b7b51ed2c4d7daa7a0b5c55f380n,n:0xe95e4a5f737059dc60df5991d45029409e60fc09n,p:0xe95e4a5f737059dc60dfc7ad95b3d8139515620fn},brainpoolP192r1:{a:0x6a91174076b1e0e19c39c031fe8685c1cae040e5c69a28efn,b:0x469a28ef7c28cca3dc721d044f4496bcca7ef4146fbf25c9n,n:0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1n,p:0xc302f41d932a36cda7a3463093d18db78fce476de1a86297n},brainpoolP192t1:{a:0xc302f41d932a36cda7a3463093d18db78fce476de1a86294n,b:0x13d56ffaec78681e68f9deb43b35bec2fb68542e27897b79n,n:0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1n,p:0xc302f41d932a36cda7a3463093d18db78fce476de1a86297n},brainpoolP224r1:{a:0x68a5e62ca9ce6c1c299803a6c1530b514e182ad8b0042a59cad29f43n,b:0x2580f63ccfe44138870713b1a92369e33e2135d266dbb372386c400bn,n:0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939fn,p:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ffn},brainpoolP224t1:{a:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0fcn,b:0x4b337d934104cd7bef271bf60ced1ed20da14c08b3bb64f18a60888dn,n:0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939fn,p:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ffn},brainpoolP256r1:{a:0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9n,b:0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6n,n:0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7n,p:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377n},brainpoolP256t1:{a:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5374n,b:0x662c61c430d84ea4fe66a7733d0b76b7bf93ebc4af2f49256ae58101fee92b04n,n:0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7n,p:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377n},brainpoolP320r1:{a:0x3ee30b568fbab0f883ccebd46d3f3bb8a2a73513f5eb79da66190eb085ffa9f492f375a97d860eb4n,b:0x520883949dfdbc42d3ad198640688a6fe13f41349554b49acc31dccd884539816f5eb4ac8fb1f1a6n,n:0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59311n,p:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e27n},brainpoolP320t1:{a:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e24n,b:0xa7f561e038eb1ed560b3d147db782013064c19f27ed27c6780aaf77fb8a547ceb5b4fef422340353n,n:0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59311n,p:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e27n},brainpoolP384r1:{a:0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826n,b:0x4a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11n,n:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565n,p:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53n},brainpoolP384t1:{a:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec50n,b:0x7f519eada7bda81bd826dba647910f8c4b9346ed8ccdc64e4b1abd11756dce1d2074aa263b88805ced70355a33b471een,n:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565n,p:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53n},brainpoolP512r1:{a:0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94can,b:0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723n,n:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069n,p:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n},brainpoolP512t1:{a:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n,b:0x7cbbbcf9441cfab76e1890e46884eae321f70c0bcb4981527897504bec3e36a62bcdfa2304976540f6450085f2dae145c22553b465763689180ea2571867423en,n:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069n,p:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n}};});var tt,rt,it,se=q(()=>{B();tt={p:x.brainpoolP224r1.p,a:x.brainpoolP224r1.a,b:x.brainpoolP224r1.b,n:x.brainpoolP224r1.n,h:BigInt(1),Gx:BigInt(\"0xd9029ad2c7e5cf4340823b2a87dc68c9e4ce3174c1e6efdee12c07d\"),Gy:BigInt(\"0x58aa56f772c0726f24c6b89e4ecdac24354b9e99caa3f6d3761402cd\")},ecdsa(weierstrass(tt),sha224),rt={p:b[\"P-192\"].p,a:b[\"P-192\"].a,b:b[\"P-192\"].b,n:b[\"P-192\"].n,h:BigInt(1),Gx:BigInt(\"0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012\"),Gy:BigInt(\"0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811\")},ecdsa(weierstrass(rt),sha1),it={p:b[\"P-224\"].p,a:b[\"P-224\"].a,b:b[\"P-224\"].b,n:b[\"P-224\"].n,h:BigInt(1),Gx:BigInt(\"0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21\"),Gy:BigInt(\"0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34\")},ecdsa(weierstrass(it),sha224);});var m=class t{constructor(e){this.bytes=t.convertToBytes(e);}static convertToBytes(e){if(typeof e==\"bigint\"||typeof e==\"number\"){let r=e.toString(16),i=r.padStart(Math.ceil(r.length/2)*2,\"0\");return new Uint8Array(i.match(/.{1,2}/g)?.map(n=>parseInt(n,16))||[])}if(e instanceof Uint8Array)return new Uint8Array(e);if(Buffer.isBuffer(e))return new Uint8Array(e);if(Array.isArray(e)){if(!e.every(r=>typeof r==\"number\"&&r>=0&&r<=255))throw new Error(\"Invalid byte array: values must be between 0 and 255\");return new Uint8Array(e)}if(e instanceof ArrayBuffer)return new Uint8Array(e);if(typeof e==\"string\"){if(t.isHexString(e)){let r=e.startsWith(\"0x\")?e.slice(2):e,i=r.padStart(Math.ceil(r.length/2)*2,\"0\");return new Uint8Array(i.match(/.{1,2}/g)?.map(n=>parseInt(n,16))||[])}try{let r=BigInt(e);return t.convertToBytes(r)}catch{return new Uint8Array(Buffer.from(e,\"ascii\"))}}throw new Error(\"Unsupported data type\")}static isHexString(e){let r=e.startsWith(\"0x\")?e.slice(2):e;return /^[0-9a-fA-F]*$/.test(r)}static from(e){return new t(e)}static fromHex(e){if(!t.isHexString(e))throw new Error(\"Invalid hex string\");return new t(e.startsWith(\"0x\")?e:\"0x\"+e)}static fromBuffer(e){return new t(e)}static fromBase64(e){let r=atob(e);return new t(Uint8Array.from(r,i=>i.charCodeAt(0)))}static empty(){return new t(new Uint8Array(0))}static zero(e){return new t(new Uint8Array(e))}toBigInt(){return BigInt(\"0x\"+this.toHex().slice(2))}toUInt8Array(){return new Uint8Array(this.bytes)}toNumberArray(){return Array.from(this.bytes)}toHex(){return \"0x\"+Array.from(this.bytes).map(e=>e.toString(16).padStart(2,\"0\")).join(\"\")}toBuffer(){return Buffer.from(this.bytes)}toString(e=\"hex\"){return e===\"hex\"?this.toHex().slice(2):Buffer.from(this.bytes).toString(e)}toBase64(){return btoa(String.fromCharCode(...this.bytes))}toJSON(){return this.toHex()}[Symbol.for(\"nodejs.util.inspect.custom\")](){return `Binary(${this.toHex()})`}[Symbol.toPrimitive](e){switch(e){case \"number\":return Number(this.toBigInt());case \"string\":return `Binary(${this.toHex()})`;default:return this.toBigInt()}}valueOf(){return this.toBigInt()}get length(){return this.bytes.length}*[Symbol.iterator](){yield*this.bytes;}equals(e){return this.length!==e.length?false:this.bytes.every((r,i)=>r===e.bytes[i])}slice(e,r){return new t(this.bytes.slice(e,r))}concat(e){return new t([...this.toNumberArray(),...e.toNumberArray()])}[Symbol.for(\"+\")](e){return this.concat(e)}compare(e){let r=Math.min(this.length,e.length);for(let i=0;i<r;i++){let n=this.bytes[i]-e.bytes[i];if(n!==0)return n}return this.length-e.length}xor(e){if(this.length!==e.length)throw new Error(\"Binary instances must be of equal length for XOR operation\");let r=new Uint8Array(this.length);for(let i=0;i<this.length;i++)r[i]=this.bytes[i]^e.bytes[i];return new t(r)}and(e){if(this.length!==e.length)throw new Error(\"Binary instances must be of equal length for AND operation\");let r=new Uint8Array(this.length);for(let i=0;i<this.length;i++)r[i]=this.bytes[i]&e.bytes[i];return new t(r)}or(e){if(this.length!==e.length)throw new Error(\"Binary instances must be of equal length for OR operation\");let r=new Uint8Array(this.length);for(let i=0;i<this.length;i++)r[i]=this.bytes[i]|e.bytes[i];return new t(r)}not(){let e=new Uint8Array(this.length);for(let r=0;r<this.length;r++)e[r]=~this.bytes[r]&255;return new t(e)}padStart(e,r=0){if(this.length>=e)return this;let i=new Uint8Array(e);return i.fill(r,0,e-this.length),i.set(this.bytes,e-this.length),new t(i)}padEnd(e,r=0){if(this.length>=e)return this;let i=new Uint8Array(e);return i.set(this.bytes),i.fill(r,this.length),new t(i)}};function A(t,e){return t.concat(Array(e-t.length).fill(0))}function O(t,e){return Array(e-t.length).fill(0).concat(t)}function h(t,e){let r=BigInt(0);for(let i=0;i<e;i++)r*=BigInt(256),r+=BigInt(t[i]);return r}function Z(t,e){let r=BigInt(0);for(let i=0;i<Math.min(e,t.length);i++)r*=BigInt(2),r+=BigInt(t[i]);return r}function p(t,e){if(t.length===0)return [];let r=Math.ceil(t.length/e),i=new Array(r),n=t.length%e||e,o=0;for(let a=r-1;a>=0;a--){let s=a===r-1?n:e,d=0n;for(let g=0;g<s;g++)d=d<<8n|BigInt(t[o++]);let S=d.toString(16);i[a]=\"0x\"+(S.length%2?\"0\":\"\")+S;}return i}function J(t,e){if(t.length===0)return [];let r=Math.ceil(t.length/e),i=new Array(r),n=0;for(let o=0;o<r;o++){let a=t.length-n,s=Math.min(e,a),d=0n;for(let g=s-1;g>=0;g--)d=d<<8n|BigInt(t[n+g]);n+=s;let S=d.toString(16);i[o]=\"0x\"+S;}return i}var Y={ethereum:1,base:8453,arbitrum:42161,optimism:10,polygon:137,celo:42220,gnosis:100,scroll:534352,linea:59144,world_chain:480,ethereum_sepolia:11155111,base_sepolia:84532,arbitrum_sepolia:421614,polygon_amoy:80002,celo_sepolia:11142220,gnosis_chiado:10200,scroll_sepolia:534351,linea_sepolia:59141,world_chain_sepolia:4801,local:31337};function ee(t){if(!Y[t])throw new Error(`Unsupported chain: ${t}`);return Y[t]}function u(t,e){return hexToBytes(t.toString(16).padStart(e*2,\"0\"))}function L(t){return t.replace(/^<+|<+$/g,\"\").replace(/</g,\" \")}function C(t){return t.replace(/<+/g,\" \").replace(/</g,\" \").replace(/\\s+/g,\" \").replace(/[áàâäãå]/g,\"a\").replace(/[éèêë]/g,\"e\").replace(/[íìîï]/g,\"i\").replace(/[óòôöõ]/g,\"o\").replace(/[úùûü]/g,\"u\").replace(/[ñ]/g,\"n\").replace(/[ç]/g,\"c\").replace(/[æ]/g,\"ae\").replace(/[œ]/g,\"oe\").replace(/[ø]/g,\"o\").replace(/[æ]/g,\"ae\").replace(/[œ]/g,\"oe\").replace(/[ø]/g,\"o\").replace(/[^a-zA-Z ]/g,\"\").trim()}function k(t){return t.startsWith(\"P\")?\"passport\":t===\"IR\"||t===\"AR\"?\"residence_permit\":t.startsWith(\"I\")?\"id_card\":\"other\"}function De(t,e){let r=new TextEncoder().encode(t),i=new Uint8Array(e),n=r.map((o,a)=>i[a]===1?o:0);return A(Array.from(n),90)}var V=class t{constructor(e){this.issuingCountry=e.issuingCountry,this.nationality=e.nationality,this.documentType=e.documentType,this.documentNumber=e.documentNumber,this.dateOfExpiry=e.dateOfExpiry,this.dateOfBirth=e.dateOfBirth,this.name=e.name,this.gender=e.gender,this.firstName=e.firstName,this.lastName=e.lastName;}static fromDisclosedBytes(e,r){let i={issuingCountry:new Uint8Array(e.slice(2,5)),nationality:new Uint8Array(e.slice(r===\"id_card\"?45:54,r===\"id_card\"?48:57)),documentType:new Uint8Array(e.slice(0,2)),documentNumber:new Uint8Array(e.slice(r===\"id_card\"?5:44,r===\"id_card\"?14:53)),dateOfExpiry:new Uint8Array(e.slice(r===\"id_card\"?38:65,r===\"id_card\"?44:71)),dateOfBirth:new Uint8Array(e.slice(r===\"id_card\"?30:57,r===\"id_card\"?36:63)),name:new Uint8Array(e.slice(r===\"id_card\"?60:5,r===\"id_card\"?90:44)),gender:new Uint8Array(e.slice(r===\"id_card\"?37:64,r===\"id_card\"?38:65))},n=new TextDecoder,o=l=>n.decode(l).replace(/\\0/g,\"\"),a=i.name&&i.name.length>0?o(i.name):\"\",s=a.indexOf(\"<<\"),d=s>=0?a.substring(0,s):\"\",S=s>=0?a.substring(s+2):\"\",g=S+\" \"+d;return new t({issuingCountry:o(i.issuingCountry),nationality:o(i.nationality),documentType:k(o(i.documentType)),documentNumber:L(o(i.documentNumber)),dateOfExpiry:P(i.dateOfExpiry),dateOfBirth:P(i.dateOfBirth),name:C(g),firstName:C(S),lastName:C(d),gender:o(i.gender)})}static fromFlagsProof(e){let r=e.publicInputs.slice(3,93).map(l=>parseInt(l,16)),i={issuingCountry:new Uint8Array(r.slice(0,3)),nationality:new Uint8Array(r.slice(3,6)),documentType:new Uint8Array(r.slice(6,8)),documentNumber:new Uint8Array(r.slice(8,17)),dateOfExpiry:new Uint8Array(r.slice(17,23)),dateOfBirth:new Uint8Array(r.slice(23,29)),name:new Uint8Array(r.slice(29,68)),gender:new Uint8Array(r.slice(68,69))},n=new TextDecoder,o=l=>n.decode(l).replace(/\\0/g,\"\"),a=i.name&&i.name.length>0?o(i.name):\"\",s=a.indexOf(\"<<\"),d=s>0?a.substring(0,s):\"\",S=s>0?a.substring(s+2):\"\",g=S+\" \"+d;return new t({issuingCountry:o(i.issuingCountry),nationality:o(i.nationality),documentType:k(o(i.documentType)),documentNumber:L(o(i.documentNumber)),dateOfExpiry:P(i.dateOfExpiry),dateOfBirth:P(i.dateOfBirth),name:C(g),firstName:C(S),lastName:C(d),gender:o(i.gender)})}static fromBytesProof(e,r){let o=e.publicInputs.slice(93,182).map(U=>parseInt(U,16)),a={issuingCountry:new Uint8Array(o.slice(2,5)),nationality:new Uint8Array(o.slice(r===\"id_card\"?45:54,r===\"id_card\"?48:57)),documentType:new Uint8Array(o.slice(0,2)),documentNumber:new Uint8Array(o.slice(r===\"id_card\"?5:44,r===\"id_card\"?14:53)),dateOfExpiry:new Uint8Array(o.slice(r===\"id_card\"?38:65,r===\"id_card\"?44:71)),dateOfBirth:new Uint8Array(o.slice(r===\"id_card\"?30:57,r===\"id_card\"?36:63)),name:new Uint8Array(o.slice(r===\"id_card\"?60:5,r===\"id_card\"?90:44)),gender:new Uint8Array(o.slice(r===\"id_card\"?37:64,r===\"id_card\"?38:65))},s=new TextDecoder,d=U=>s.decode(U).replace(/\\0/g,\"\"),S=a.name&&a.name.length>0?d(a.name):\"\",g=S.indexOf(\"<<\"),l=g>=0?S.substring(0,g):\"\",$=g>=0?S.substring(g+2):\"\",he=$+\" \"+l;return new t({issuingCountry:d(a.issuingCountry),nationality:d(a.nationality),documentType:k(d(a.documentType)),documentNumber:L(d(a.documentNumber)),dateOfExpiry:P(a.dateOfExpiry),dateOfBirth:P(a.dateOfBirth),name:C(he),firstName:C($),lastName:C(l),gender:d(a.gender)})}};function P(t){let e=new TextDecoder().decode(t).replace(/\\0/g,\"\"),r=parseInt(e.substring(0,2)),i=parseInt(e.substring(2,4))-1,n=parseInt(e.substring(4,6)),o=new Date().getFullYear(),a=Math.floor(o/100)*100,s=a-100,d=r+(r+a>o+10?s:a);return new Date(Date.UTC(d,i,n,0,0,0,0))}function Ne(t){let e=t.getFullYear()%100,r=t.getMonth()+1,i=t.getDate(),n=`${e.toString().padStart(2,\"0\")}${r.toString().padStart(2,\"0\")}${i.toString().padStart(2,\"0\")}`;return new TextEncoder().encode(n)}function xe(t){let e=new TextEncoder;function r(n,o){if(n.length===o)return n;let a=new Uint8Array(o);return a.set(n.slice(0,o)),a}function i(n,o){if(n instanceof Date)return r(Ne(n),o);let a=typeof n==\"string\"?e.encode(n):n;return r(a,o)}return {issuingCountry:i(t.issuingCountry,3),nationality:i(t.nationality,3),documentType:i(t.documentType,2),documentNumber:i(t.documentNumber,9),dateOfExpiry:i(t.dateOfExpiry,6),dateOfBirth:i(t.dateOfBirth,6),name:i(t.name,39),gender:i(t.gender,1)}}async function Me(t,e){return await poseidon2HashAsync([BigInt(0),BigInt(c[0].standard),Z(t,253),...p(new Uint8Array(e),31).map(i=>BigInt(i))])}async function Be(t,e){let r=sha256(new Uint8Array([0,...u(c[0].evm,2),...t.map(n=>Number(n)),...e.map(n=>Number(n))]));return h(r,31)}B();BigInt(\"0x2523648240000001ba344d80000000086121000000000013a700000000000012\");B();var D=class extends AsnArray{constructor(e){super(e),Object.setPrototypeOf(this,D.prototype);}};D=f([AsnType({type:AsnTypeTypes.Set,itemType:Attribute})],D);var R=class{constructor(e={}){this.number=1;this.hash=new ArrayBuffer(0);Object.assign(this,e);}};f([AsnProp({type:AsnPropTypes.Integer})],R.prototype,\"number\",2),f([AsnProp({type:AsnPropTypes.OctetString})],R.prototype,\"hash\",2);var v=class{constructor(e={}){this.ldsVersion=\"\";this.unicodeVersion=\"\";Object.assign(this,e);}};f([AsnProp({type:AsnPropTypes.PrintableString})],v.prototype,\"ldsVersion\",2),f([AsnProp({type:AsnPropTypes.PrintableString})],v.prototype,\"unicodeVersion\",2);var _=class{constructor(e){this.value=\"\";e&&(typeof e==\"string\"?this.value=e:Object.assign(this,e));}};f([AsnProp({type:AsnPropTypes.ObjectIdentifier})],_.prototype,\"value\",2),_=f([AsnType({type:AsnTypeTypes.Choice})],_);var T=class{constructor(e={}){this.version=1;this.hashAlgorithm=new DigestAlgorithmIdentifier;this.dataGroups=[];Object.assign(this,e);}};f([AsnProp({type:AsnPropTypes.Integer})],T.prototype,\"version\",2),f([AsnProp({type:DigestAlgorithmIdentifier})],T.prototype,\"hashAlgorithm\",2),f([AsnProp({type:R,repeated:\"sequence\"})],T.prototype,\"dataGroups\",2),f([AsnProp({type:v,optional:true})],T.prototype,\"versionInfo\",2);var M=class{constructor(e={}){this.version=0;this.certificates=[];Object.assign(this,e);}};f([AsnProp({type:AsnPropTypes.Integer})],M.prototype,\"version\",2),f([AsnProp({type:Certificate,repeated:\"set\"})],M.prototype,\"certificates\",2),M=f([AsnType({type:AsnTypeTypes.Sequence})],M);B();var I=class t{constructor(e,r,i){this.value=e;this.salt=r;this.hash=i;this.value=e,this.salt=r,this.hash=i;}static fromValue(e,r){return new t(r,e,BigInt(0))}static fromHash(e,r){return new t(r,BigInt(0),e)}async getHash(){if(this.hash!==BigInt(0))return this.hash;if(Array.isArray(this.value)){let e=p(new Uint8Array(this.value),31).map(r=>BigInt(r));return await poseidon2HashAsync([this.salt,...e])}else return await poseidon2HashAsync([this.salt,BigInt(this.value)])}formatForInput(){return {value:Array.isArray(this.value)?this.value:`0x${BigInt(this.value).toString(16)}`,salt:`0x${this.salt.toString(16)}`,hash:`0x${this.hash.toString(16)}`}}};if(typeof window>\"u\")try{let t=be(\"crypto\");crypto=t;}catch{}se();function Oo(t){return BigInt(t.publicInputs[0])}function ko(t){return BigInt(t.publicInputs[1])}function de(){return 2}function Go(t){return BigInt(t.publicInputs[t.publicInputs.length-2])}function Fo(t){return BigInt(t.publicInputs[t.publicInputs.length-1])}function le(){return 2}function zo(t){return t.minAge}function jo(t){return t.maxAge}async function Qo(t,e){return await poseidon2HashAsync([BigInt(1),BigInt(c[1].standard),BigInt(t),BigInt(e)])}async function $o(t,e){let r=sha256(new Uint8Array([1,...u(c[1].evm,2),t,e]));return h(r,31)}function ae(t){return t.charCodeAt(0)*65536+t.charCodeAt(1)*256+t.charCodeAt(2)}function ra(t){return String.fromCharCode(Math.floor(t/65536),Math.floor(t/256)%256,t%256)}function ia(t){let e=[];for(let r=0;r<t.countries.length;r+=3)Number(t.countries[r])!==0&&e.push(new TextDecoder().decode(new Uint8Array(t.countries.slice(r,r+3).map(Number))));return e}async function na(t,e,r=false){let i=e.map(a=>ae(a)),n=A(r?i.sort((a,s)=>a-s):i,200).map(a=>BigInt(a));return await poseidon2HashAsync([BigInt(t),BigInt(c[t].standard),...n])}async function oa(t,e,r=false){r&&e.sort((a,s)=>a.localeCompare(s));let i=e.map(a=>Array.from(new TextEncoder().encode(a))).flat(),n=sha256(new Uint8Array([t,...u(c[t].evm,2),...A(i,600)]));return h(n,31)}var w=Math.floor(Math.abs(Date.UTC(1900,0,1,0,0,0))/1e3);function ue(t){return new Date(t.minDateTimestamp*1e3)}function pe(t){return new Date(t.maxDateTimestamp*1e3)}function ua(t,e=w){return ue(t).getTime()===0?new Date(0):new Date(ue(t).getTime()+e*1e3)}function pa(t,e=w){return pe(t).getTime()===0?new Date(0):new Date(pe(t).getTime()+e*1e3)}async function ma(t,e,r,i=w){return await poseidon2HashAsync([BigInt(t),BigInt(c[t].standard),t===2&&e!==0?BigInt(e)+BigInt(i):BigInt(e),t===2&&r!==0?BigInt(r)+BigInt(i):BigInt(r)])}async function ga(t,e,r,i=w){let n=sha256(new Uint8Array([t,...u(c[t].evm,2),...u(t===2&&e!==0?e+i:e,8),...u(t===2&&r!==0?r+i:r,8)]));return h(n,31)}function Sa(t){return BigInt(t.publicInputs[0])}function ha(t){return BigInt(t.publicInputs[1])}function me(){return 2}function ge(t){return \"0x\"+Buffer.from(t).toString(\"hex\").padStart(64,\"0\")}function Ca(t){let e=[];for(let r=0;r<t.length;r+=32)e.push(ge(t.slice(r,r+32)));return e}function ba(t){let e=ge(t.slice(32,64));return parseInt(e,16)-16}function Na(t){return t.data}var pt=(i=>(i[i.USER_ADDRESS=1]=\"USER_ADDRESS\",i[i.CHAIN_ID=2]=\"CHAIN_ID\",i[i.CUSTOM_DATA=3]=\"CUSTOM_DATA\",i))(pt||{});function je(t){let e=[];if(t.user_address&&t.user_address.length>0){let r=m.fromHex(t.user_address).toNumberArray();e=[...e,1,...O([r.length],2),...r];}if(t.chain){let r=ee(t.chain),i=m.fromHex(r.toString(16)).toNumberArray();e=[...e,2,0,i.length,...i];}if(t.custom_data&&t.custom_data.length>0){let r=new TextEncoder().encode(t.custom_data);e=[...e,3,r.length>>8&255,r.length&255,...r];}if(e.length>509)throw new Error(`Data is too long: ${e.length} > 509`);return e}async function xa(t,e=509){let r=A(t,e);return await poseidon2HashAsync([BigInt(8),BigInt(c[8].standard),...p(new Uint8Array(r),31).map(n=>BigInt(n))])}async function Ma(t,e=509){let r=A(t,e),i=sha256(new Uint8Array([8,...u(c[8].evm,2),...r]));return h(i,31)}var fe=8544227306600425492560068004835614964118871262589609739238120993689090208159n,Se=0x24d9929b248be7eeecaa98e105c034a50539610f3fdd4cb9c8983ef4100d615dn;async function Ka(t,e,r,i){return await poseidon2HashAsync([BigInt(10),BigInt(c[10].standard),t,e,r,r===Se?fe:0n,i])}async function Oa(t,e,r,i){let n=sha256(new Uint8Array([10,...u(c[10].evm,2),...u(t,32),...u(e,1),...u(r,32),...u(r===Se?fe:0n,32),...u(i,1)]));return h(n,31)}async function Qe(t,e,r){return m.from(await poseidon2HashAsync([...p(t.toUInt8Array(),31).map(i=>BigInt(i)),...p(e.toUInt8Array(),31).map(i=>BigInt(i)),...p(r.toUInt8Array(),31).map(i=>BigInt(i))]))}async function $e(t,e,r,i){let n=[];return n.push(t),n.push(...p(new Uint8Array(e.split(\"\").map(o=>o.charCodeAt(0))),31).map(o=>BigInt(o))),n.push(...p(r.padEnd(i).toUInt8Array(),31).map(o=>BigInt(o))),m.from(await poseidon2HashAsync(n.map(o=>BigInt(o))))}async function qe(t,e,r,i,n,o,a){let s=[];return s.push(t),s.push(...p(new Uint8Array(e.split(\"\").map(d=>d.charCodeAt(0))),31).map(d=>BigInt(d))),s.push(...p(r.toUInt8Array(),31).map(d=>BigInt(d))),s.push(i),s.push(...p(n.toUInt8Array(),31).map(d=>BigInt(d))),s.push(...p(o.toUInt8Array(),31).map(d=>BigInt(d))),s.push(a),m.from(await poseidon2HashAsync(s.map(d=>BigInt(d))))}async function Ye(t){return St(new Uint8Array(t))}async function St(t){let e=J(t,31);return poseidon2HashAsync(e.map(r=>BigInt(r)))}async function Ze(t,e,r,i,n,o){let a=[];return a.push(await I.fromValue(t.dg1Salt,e.toNumberArray()).getHash()),a.push(await I.fromValue(t.expiryDateSalt,r.split(\"\").map(s=>s.charCodeAt(0))).getHash()),a.push(await I.fromValue(t.dg2HashSalt,i).getHash()),a.push(await I.fromValue(t.dg2HashSalt,BigInt(n)).getHash()),a.push(await I.fromValue(t.privateNullifierSalt,o).getHash()),m.from(await poseidon2HashAsync(a.map(s=>BigInt(s))))}function ja(t){return BigInt(t.publicInputs[t.publicInputs.length-1])}function Qa(t){let e=BigInt(t.publicInputs[t.publicInputs.length-2]);if(e===0n)return 0;if(e===1n)return 1;if(e===2n)return 2;if(e===3n)return 3;throw new Error(\"Invalid nullifier type\")}function $a(t){return BigInt(t.publicInputs[4])}function qa(t){return BigInt(t.publicInputs[3])}function Ya(t){return BigInt(t.publicInputs[2])}function Za(t){return BigInt(t.publicInputs[0])}function Ja(t){return new Date(Number(BigInt(t.publicInputs[1]))*1e3)}async function ec(t,e){return await(await fetch(`https://circuits.zkpassport.id/artifacts/${t}_${e.replace(\"0x\",\"\").substring(0,16)}.json.gz`)).json()}async function tc(t){return await(await fetch(`https://circuits.zkpassport.id/hashes/${t.replace(\"0x\",\"\")}.json.gz`)).json()}async function rc(t,e){return await(await fetch(`https://circuits.zkpassport.id/versions/${t}/${e}.json.gz`)).json()}function ic(t){return t.startsWith(\"data_check_integrity\")?le():t.startsWith(\"sig_check_id_data\")?me():t.startsWith(\"sig_check_dsc\")?de():t.startsWith(\"outer\")?7+(Number(t.substring(t.lastIndexOf(\"_\")+1))-3):7}function nc(t){let e=t.endsWith(\"evm\")?3:2;switch(t){case \"compare_age\":return c[1].standard+e;case \"compare_age_evm\":return c[1].evm+e;case \"compare_birthdate\":return c[2].standard+e;case \"compare_birthdate_evm\":return c[2].evm+e;case \"compare_expiry\":return c[3].standard+e;case \"compare_expiry_evm\":return c[3].evm+e;case \"disclose_bytes\":return c[0].standard+e;case \"disclose_bytes_evm\":return c[0].evm+e;case \"inclusion_check_issuing_country\":return c[6].standard+e;case \"inclusion_check_issuing_country_evm\":return c[6].evm+e;case \"inclusion_check_nationality\":return c[4].standard+e;case \"inclusion_check_nationality_evm\":return c[4].evm+e;case \"exclusion_check_issuing_country\":return c[7].standard+e;case \"exclusion_check_issuing_country_evm\":return c[7].evm+e;case \"exclusion_check_nationality\":return c[5].standard+e;case \"exclusion_check_nationality_evm\":return c[5].evm+e;case \"bind\":return c[8].standard+e;case \"bind_evm\":return c[8].evm+e;case \"exclusion_check_sanctions\":return c[9].standard+e;case \"exclusion_check_sanctions_evm\":return c[9].evm+e;case \"facematch\":return c[10].standard+e;case \"facematch_evm\":return c[10].evm+e;default:throw new Error(`Unknown circuit name: ${t}`)}}function ht(t){return format(t,\"yyyyMMdd\")}function oc(t){return m.from(new TextEncoder().encode(ht(t)))}var E=(l=>(l[l.DISCLOSE=0]=\"DISCLOSE\",l[l.AGE=1]=\"AGE\",l[l.BIRTHDATE=2]=\"BIRTHDATE\",l[l.EXPIRY_DATE=3]=\"EXPIRY_DATE\",l[l.NATIONALITY_INCLUSION=4]=\"NATIONALITY_INCLUSION\",l[l.NATIONALITY_EXCLUSION=5]=\"NATIONALITY_EXCLUSION\",l[l.ISSUING_COUNTRY_INCLUSION=6]=\"ISSUING_COUNTRY_INCLUSION\",l[l.ISSUING_COUNTRY_EXCLUSION=7]=\"ISSUING_COUNTRY_EXCLUSION\",l[l.BIND=8]=\"BIND\",l[l.SANCTIONS_EXCLUSION=9]=\"SANCTIONS_EXCLUSION\",l[l.FACEMATCH=10]=\"FACEMATCH\",l))(E||{}),c={0:{evm:180,standard:4},1:{evm:2,standard:2},2:{evm:16,standard:2},3:{evm:16,standard:2},4:{evm:600,standard:200},5:{evm:600,standard:200},6:{evm:600,standard:200},7:{evm:600,standard:200},8:{evm:509,standard:17},9:{evm:33,standard:2},10:{evm:98,standard:5}};\nexport{pt as BoundDataIdentifier,V as DisclosedData,E as ProofType,c as ProofTypeLength,w as SECONDS_BETWEEN_1900_AND_1970,Qe as calculatePrivateNullifier,xe as createDisclosedDataRaw,je as formatBoundData,C as formatName,$o as getAgeEVMParameterCommitment,Qo as getAgeParameterCommitment,Ma as getBindEVMParameterCommitment,xa as getBindParameterCommitment,pa as getBirthdateMaxDateTimestamp,ua as getBirthdateMinDateTimestamp,Na as getBoundDataFromCommittedInputs,ko as getCommitmentFromDSCProof,Za as getCommitmentInFromDisclosureProof,Sa as getCommitmentInFromIDDataProof,Go as getCommitmentInFromIntegrityProof,ha as getCommitmentOutFromIDDataProof,Fo as getCommitmentOutFromIntegrityProof,nc as getCommittedInputCount,oa as getCountryEVMParameterCommitment,ra as getCountryFromWeightedSum,ia as getCountryListFromCommittedInputs,na as getCountryParameterCommitment,ae as getCountryWeightedSum,Ja as getCurrentDateFromDisclosureProof,de as getDSCProofPublicInputCount,oc as getDateBytes,ga as getDateEVMParameterCommitment,ma as getDateParameterCommitment,Be as getDiscloseEVMParameterCommitment,Me as getDiscloseParameterCommitment,De as getDisclosedBytesFromMrzAndMask,Oa as getFacematchEvmParameterCommitment,Ka as getFacematchParameterCommitment,ht as getFormattedDate,rc as getHostedPackagedCircuitByName,ec as getHostedPackagedCircuitByNameAndHash,tc as getHostedPackagedCircuitByVkeyHash,me as getIDDataProofPublicInputCount,le as getIntegrityProofPublicInputCount,jo as getMaxAgeFromCommittedInputs,pe as getMaxDateFromCommittedInputs,Oo as getMerkleRootFromDSCProof,zo as getMinAgeFromCommittedInputs,ue as getMinDateFromCommittedInputs,ja as getNullifierFromDisclosureProof,Qa as getNullifierTypeFromDisclosureProof,ic as getNumberOfPublicInputs,ba as getNumberOfPublicInputsFromVkey,$a as getParameterCommitmentFromDisclosureProof,Ya as getServiceScopeFromDisclosureProof,qa as getServiceSubScopeFromDisclosureProof,qe as hashSaltCountrySignedAttrDg1EContentPrivateNullifier,$e as hashSaltCountryTbs,Ze as hashSaltDg1Dg2HashPrivateNullifier,Ye as normalizeDg2Hash,St as packLeBytesAndHashPoseidon2,k as parseDocumentType,Ca as ultraVkToFields};","import {p521,p384,p256}from'@noble/curves/nist.js';import {sha1}from'@noble/hashes/legacy.js';import {sha224}from'@noble/hashes/sha2.js';import'@noble/curves/misc.js';import {ecdsa,weierstrass}from'@noble/curves/abstract/weierstrass.js';import {poseidon2HashAsync}from'@zkpassport/poseidon2';import {requireFunction,requireNumber,requireTypes,requireObject,requireArray}from'@zk-kit/utils';import'@noble/hashes/utils.js';import {AsnType,AsnTypeTypes,AsnProp,AsnPropTypes,AsnArray}from'@peculiar/asn1-schema';import {Certificate}from'@peculiar/asn1-x509';import'date-fns';import'@peculiar/asn1-ecc';import'@peculiar/asn1-rsa';import {Attribute,DigestAlgorithmIdentifier}from'@peculiar/asn1-cms';var be=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Ie=(r=>typeof require<\"u\"?require:typeof Proxy<\"u\"?new Proxy(r,{get:(e,t)=>(typeof require<\"u\"?require:e)[t]}):r)(function(r){if(typeof require<\"u\")return require.apply(this,arguments);throw Error('Dynamic require of \"'+r+'\" is not supported')});var Q=(r,e)=>()=>(r&&(e=r(r=0)),e);var l=(r,e,t,i)=>{for(var n=i>1?void 0:i?Ae(e,t):e,o=r.length-1,a;o>=0;o--)(a=r[o])&&(n=(i?a(e,t,n):a(n))||n);return i&&n&&be(e,t,n),n};var m,I,D=Q(()=>{m={\"P-192\":{a:0xfffffffffffffffffffffffffffffffefffffffffffffffcn,b:0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1n,n:0xffffffffffffffffffffffff99def836146bc9b1b4d22831n,p:0xfffffffffffffffffffffffffffffffeffffffffffffffffn},\"P-224\":{a:0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffen,b:0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4n,n:0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3dn,p:0xffffffffffffffffffffffffffffffff000000000000000000000001n},\"P-256\":{a:p256.Point.CURVE().a,b:p256.Point.CURVE().b,n:p256.Point.CURVE().n,p:p256.Point.CURVE().p},\"P-384\":{a:p384.Point.CURVE().a,b:p384.Point.CURVE().b,n:p384.Point.CURVE().n,p:p384.Point.CURVE().p},\"P-521\":{a:p521.Point.CURVE().a,b:p521.Point.CURVE().b,n:p521.Point.CURVE().n,p:p521.Point.CURVE().p}},I={brainpoolP160r1:{a:0x340e7be2a280eb74e2be61bada745d97e8f7c300n,b:0x1e589a8595423412134faa2dbdec95c8d8675e58n,n:0xe95e4a5f737059dc60df5991d45029409e60fc09n,p:0xe95e4a5f737059dc60dfc7ad95b3d8139515620fn},brainpoolP160t1:{a:0xe95e4a5f737059dc60dfc7ad95b3d8139515620cn,b:0x7a556b6dae535b7b51ed2c4d7daa7a0b5c55f380n,n:0xe95e4a5f737059dc60df5991d45029409e60fc09n,p:0xe95e4a5f737059dc60dfc7ad95b3d8139515620fn},brainpoolP192r1:{a:0x6a91174076b1e0e19c39c031fe8685c1cae040e5c69a28efn,b:0x469a28ef7c28cca3dc721d044f4496bcca7ef4146fbf25c9n,n:0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1n,p:0xc302f41d932a36cda7a3463093d18db78fce476de1a86297n},brainpoolP192t1:{a:0xc302f41d932a36cda7a3463093d18db78fce476de1a86294n,b:0x13d56ffaec78681e68f9deb43b35bec2fb68542e27897b79n,n:0xc302f41d932a36cda7a3462f9e9e916b5be8f1029ac4acc1n,p:0xc302f41d932a36cda7a3463093d18db78fce476de1a86297n},brainpoolP224r1:{a:0x68a5e62ca9ce6c1c299803a6c1530b514e182ad8b0042a59cad29f43n,b:0x2580f63ccfe44138870713b1a92369e33e2135d266dbb372386c400bn,n:0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939fn,p:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ffn},brainpoolP224t1:{a:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0fcn,b:0x4b337d934104cd7bef271bf60ced1ed20da14c08b3bb64f18a60888dn,n:0xd7c134aa264366862a18302575d0fb98d116bc4b6ddebca3a5a7939fn,p:0xd7c134aa264366862a18302575d1d787b09f075797da89f57ec8c0ffn},brainpoolP256r1:{a:0x7d5a0975fc2c3057eef67530417affe7fb8055c126dc5c6ce94a4b44f330b5d9n,b:0x26dc5c6ce94a4b44f330b5d9bbd77cbf958416295cf7e1ce6bccdc18ff8c07b6n,n:0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7n,p:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377n},brainpoolP256t1:{a:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5374n,b:0x662c61c430d84ea4fe66a7733d0b76b7bf93ebc4af2f49256ae58101fee92b04n,n:0xa9fb57dba1eea9bc3e660a909d838d718c397aa3b561a6f7901e0e82974856a7n,p:0xa9fb57dba1eea9bc3e660a909d838d726e3bf623d52620282013481d1f6e5377n},brainpoolP320r1:{a:0x3ee30b568fbab0f883ccebd46d3f3bb8a2a73513f5eb79da66190eb085ffa9f492f375a97d860eb4n,b:0x520883949dfdbc42d3ad198640688a6fe13f41349554b49acc31dccd884539816f5eb4ac8fb1f1a6n,n:0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59311n,p:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e27n},brainpoolP320t1:{a:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e24n,b:0xa7f561e038eb1ed560b3d147db782013064c19f27ed27c6780aaf77fb8a547ceb5b4fef422340353n,n:0xd35e472036bc4fb7e13c785ed201e065f98fcfa5b68f12a32d482ec7ee8658e98691555b44c59311n,p:0xd35e472036bc4fb7e13c785ed201e065f98fcfa6f6f40def4f92b9ec7893ec28fcd412b1f1b32e27n},brainpoolP384r1:{a:0x7bc382c63d8c150c3c72080ace05afa0c2bea28e4fb22787139165efba91f90f8aa5814a503ad4eb04a8c7dd22ce2826n,b:0x4a8c7dd22ce28268b39b55416f0447c2fb77de107dcd2a62e880ea53eeb62d57cb4390295dbc9943ab78696fa504c11n,n:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565n,p:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53n},brainpoolP384t1:{a:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec50n,b:0x7f519eada7bda81bd826dba647910f8c4b9346ed8ccdc64e4b1abd11756dce1d2074aa263b88805ced70355a33b471een,n:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b31f166e6cac0425a7cf3ab6af6b7fc3103b883202e9046565n,p:0x8cb91e82a3386d280f5d6f7e50e641df152f7109ed5456b412b1da197fb71123acd3a729901d1a71874700133107ec53n},brainpoolP512r1:{a:0x7830a3318b603b89e2327145ac234cc594cbdd8d3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94can,b:0x3df91610a83441caea9863bc2ded5d5aa8253aa10a2ef1c98b9ac8b57f1117a72bf2c7b9e7c1ac4d77fc94cadc083e67984050b75ebae5dd2809bd638016f723n,n:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069n,p:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n},brainpoolP512t1:{a:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n,b:0x7cbbbcf9441cfab76e1890e46884eae321f70c0bcb4981527897504bec3e36a62bcdfa2304976540f6450085f2dae145c22553b465763689180ea2571867423en,n:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca70330870553e5c414ca92619418661197fac10471db1d381085ddaddb58796829ca90069n,p:0xaadd9db8dbe9c48b3fd4e6ae33c9fc07cb308db3b3c9d20ed6639cca703308717d4d9b009bc66842aecda12ae6a380e62881ff2f2d82c68528aa6056583a48f3n}};});var ze,je,Qe,ge=Q(()=>{D();ze={p:I.brainpoolP224r1.p,a:I.brainpoolP224r1.a,b:I.brainpoolP224r1.b,n:I.brainpoolP224r1.n,h:BigInt(1),Gx:BigInt(\"0xd9029ad2c7e5cf4340823b2a87dc68c9e4ce3174c1e6efdee12c07d\"),Gy:BigInt(\"0x58aa56f772c0726f24c6b89e4ecdac24354b9e99caa3f6d3761402cd\")},ecdsa(weierstrass(ze),sha224),je={p:m[\"P-192\"].p,a:m[\"P-192\"].a,b:m[\"P-192\"].b,n:m[\"P-192\"].n,h:BigInt(1),Gx:BigInt(\"0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012\"),Gy:BigInt(\"0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811\")},ecdsa(weierstrass(je),sha1),Qe={p:m[\"P-224\"].p,a:m[\"P-224\"].a,b:m[\"P-224\"].b,n:m[\"P-224\"].n,h:BigInt(1),Gx:BigInt(\"0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21\"),Gy:BigInt(\"0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34\")},ecdsa(weierstrass(Qe),sha224);});var u=class r{constructor(e){this.bytes=r.convertToBytes(e);}static convertToBytes(e){if(typeof e==\"bigint\"||typeof e==\"number\"){let t=e.toString(16),i=t.padStart(Math.ceil(t.length/2)*2,\"0\");return new Uint8Array(i.match(/.{1,2}/g)?.map(n=>parseInt(n,16))||[])}if(e instanceof Uint8Array)return new Uint8Array(e);if(Buffer.isBuffer(e))return new Uint8Array(e);if(Array.isArray(e)){if(!e.every(t=>typeof t==\"number\"&&t>=0&&t<=255))throw new Error(\"Invalid byte array: values must be between 0 and 255\");return new Uint8Array(e)}if(e instanceof ArrayBuffer)return new Uint8Array(e);if(typeof e==\"string\"){if(r.isHexString(e)){let t=e.startsWith(\"0x\")?e.slice(2):e,i=t.padStart(Math.ceil(t.length/2)*2,\"0\");return new Uint8Array(i.match(/.{1,2}/g)?.map(n=>parseInt(n,16))||[])}try{let t=BigInt(e);return r.convertToBytes(t)}catch{return new Uint8Array(Buffer.from(e,\"ascii\"))}}throw new Error(\"Unsupported data type\")}static isHexString(e){let t=e.startsWith(\"0x\")?e.slice(2):e;return /^[0-9a-fA-F]*$/.test(t)}static from(e){return new r(e)}static fromHex(e){if(!r.isHexString(e))throw new Error(\"Invalid hex string\");return new r(e.startsWith(\"0x\")?e:\"0x\"+e)}static fromBuffer(e){return new r(e)}static fromBase64(e){let t=atob(e);return new r(Uint8Array.from(t,i=>i.charCodeAt(0)))}static empty(){return new r(new Uint8Array(0))}static zero(e){return new r(new Uint8Array(e))}toBigInt(){return BigInt(\"0x\"+this.toHex().slice(2))}toUInt8Array(){return new Uint8Array(this.bytes)}toNumberArray(){return Array.from(this.bytes)}toHex(){return \"0x\"+Array.from(this.bytes).map(e=>e.toString(16).padStart(2,\"0\")).join(\"\")}toBuffer(){return Buffer.from(this.bytes)}toString(e=\"hex\"){return e===\"hex\"?this.toHex().slice(2):Buffer.from(this.bytes).toString(e)}toBase64(){return btoa(String.fromCharCode(...this.bytes))}toJSON(){return this.toHex()}[Symbol.for(\"nodejs.util.inspect.custom\")](){return `Binary(${this.toHex()})`}[Symbol.toPrimitive](e){switch(e){case \"number\":return Number(this.toBigInt());case \"string\":return `Binary(${this.toHex()})`;default:return this.toBigInt()}}valueOf(){return this.toBigInt()}get length(){return this.bytes.length}*[Symbol.iterator](){yield*this.bytes;}equals(e){return this.length!==e.length?false:this.bytes.every((t,i)=>t===e.bytes[i])}slice(e,t){return new r(this.bytes.slice(e,t))}concat(e){return new r([...this.toNumberArray(),...e.toNumberArray()])}[Symbol.for(\"+\")](e){return this.concat(e)}compare(e){let t=Math.min(this.length,e.length);for(let i=0;i<t;i++){let n=this.bytes[i]-e.bytes[i];if(n!==0)return n}return this.length-e.length}xor(e){if(this.length!==e.length)throw new Error(\"Binary instances must be of equal length for XOR operation\");let t=new Uint8Array(this.length);for(let i=0;i<this.length;i++)t[i]=this.bytes[i]^e.bytes[i];return new r(t)}and(e){if(this.length!==e.length)throw new Error(\"Binary instances must be of equal length for AND operation\");let t=new Uint8Array(this.length);for(let i=0;i<this.length;i++)t[i]=this.bytes[i]&e.bytes[i];return new r(t)}or(e){if(this.length!==e.length)throw new Error(\"Binary instances must be of equal length for OR operation\");let t=new Uint8Array(this.length);for(let i=0;i<this.length;i++)t[i]=this.bytes[i]|e.bytes[i];return new r(t)}not(){let e=new Uint8Array(this.length);for(let t=0;t<this.length;t++)e[t]=~this.bytes[t]&255;return new r(e)}padStart(e,t=0){if(this.length>=e)return this;let i=new Uint8Array(e);return i.fill(t,0,e-this.length),i.set(this.bytes,e-this.length),new r(i)}padEnd(e,t=0){if(this.length>=e)return this;let i=new Uint8Array(e);return i.set(this.bytes),i.fill(t,this.length),new r(i)}};function G(r){let e=typeof r==\"bigint\"?r.toString(16):r;return `0x${e.toLowerCase().padStart(e.length%2?e.length+1:e.length,\"0\")}`}function y(r,e){if(!r)throw new Error(e)}function g(r,e){if(r.length===0)return [];let t=Math.ceil(r.length/e),i=new Array(t),n=r.length%e||e,o=0;for(let a=t-1;a>=0;a--){let c=a===t-1?n:e,s=0n;for(let _=0;_<c;_++)s=s<<8n|BigInt(r[o++]);let d=s.toString(16);i[a]=\"0x\"+(d.length%2?\"0\":\"\")+d;}return i}var E=class{constructor(e,t=2){this.depth=e,this.arity=t,this.zeroes=[],this.nodes=[];}get root(){return `0x${this.nodes[this.depth][0].toString(16).padStart(64,\"0\")}`}get leaves(){return this.nodes[0].slice()}async initialize(e,t=[]){if(t.length>this.arity**this.depth)throw new Error(`The tree cannot contain more than ${this.arity**this.depth} leaves`);if(new Set(t.map(n=>n.toString())).size!==t.length)throw new Error(\"Duplicate leaves\");for(let n=0;n<this.depth;n+=1)this.zeroes.push(e),this.nodes[n]=[],e=await poseidon2HashAsync(Array(this.arity).fill(e).map(o=>BigInt(o)));if(this.nodes[this.depth]=[],t.length>0){this.nodes[0]=t;for(let n=0;n<this.depth;n+=1)for(let o=0;o<Math.ceil(this.nodes[n].length/this.arity);o+=1){let a=o*this.arity,c=[];for(let s=0;s<this.arity;s+=1)c.push(this.nodes[n][a+s]??this.zeroes[n]);this.nodes[n+1][o]=await poseidon2HashAsync(c.map(s=>BigInt(s)));}}else this.nodes[this.depth][0]=e;}serialize(){return this.nodes.map(e=>e.map(t=>`0x${t.toString(16).padStart(64,\"0\")}`))}};D();var O=class r{constructor(e,t,i=2){requireFunction(e,\"hash\"),requireNumber(t,\"depth\"),requireNumber(i,\"arity\"),this._hash=e,this._depth=t,this._zeroes=[],this._nodes=[],this._arity=i;}get root(){return this._nodes[this.depth][0]}get depth(){return this._depth}get leaves(){return this._nodes[0].slice()}get zeroes(){return this._zeroes}get arity(){return this._arity}indexOf(e){return requireTypes(e,\"leaf\",[\"number\",\"string\",\"bigint\"]),this._nodes[0].indexOf(e)}async initialize(e,t=[]){if(requireTypes(e,\"zeroValue\",[\"number\",\"string\",\"bigint\"]),requireObject(t,\"leaves\"),t.length>this._arity**this._depth)throw new Error(`The tree cannot contain more than ${this._arity**this._depth} leaves`);for(let i=0;i<this.depth;i+=1)this._zeroes.push(e),this._nodes[i]=[],e=await this._hash(Array(this._arity).fill(e));if(this._nodes[this.depth]=[],t.length>0){this._nodes[0]=t;for(let i=0;i<this.depth;i+=1)for(let n=0;n<Math.ceil(this._nodes[i].length/this.arity);n+=1){let o=n*this.arity,a=[];for(let c=0;c<this.arity;c+=1)a.push(this._nodes[i][o+c]??this.zeroes[i]);this._nodes[i+1][n]=await this._hash(a);}}else this._nodes[this.depth][0]=e;Object.freeze(this._zeroes),Object.freeze(this._nodes);}async insert(e){if(requireTypes(e,\"leaf\",[\"number\",\"string\",\"bigint\"]),this._nodes[0].length>=this.arity**this.depth)throw new Error(\"The tree is full\");let t=e,i=this._nodes[0].length;for(let n=0;n<this.depth;n+=1){let o=i%this.arity,a=i-o,c=a+this.arity,s=[];this._nodes[n][i]=t;for(let d=a;d<c;d+=1)d<this._nodes[n].length?s.push(this._nodes[n][d]):s.push(this._zeroes[n]);t=await this._hash(s),i=Math.floor(i/this.arity);}this._nodes[this.depth][0]=t;}async delete(e){await this.update(e,this.zeroes[0]);}async update(e,t){if(requireNumber(e,\"index\"),e<0||e>=this._nodes[0].length)throw new Error(\"The leaf does not exist in this tree\");if(t===this._nodes[0][e])return;let i=t;for(let n=0;n<this.depth;n+=1){let o=e%this.arity,a=e-o,c=a+this.arity,s=[];this._nodes[n][e]=i;for(let d=a;d<c;d+=1)d<this._nodes[n].length?s.push(this._nodes[n][d]):s.push(this.zeroes[n]);i=await this._hash(s),e=Math.floor(e/this.arity);}this._nodes[this.depth][0]=i;}createProof(e){if(requireNumber(e,\"index\"),e<0||e>=this._nodes[0].length)throw new Error(\"The leaf does not exist in this tree\");let t=[],i=[],n=e;for(let o=0;o<this.depth;o+=1){let a=e%this.arity,c=e-a,s=c+this.arity;i[o]=a,t[o]=[];for(let d=c;d<s;d+=1)d!==e&&(d<this._nodes[o].length?t[o].push(this._nodes[o][d]):t[o].push(this.zeroes[o]));e=Math.floor(e/this.arity);}return {root:this.root,leaf:this._nodes[0][n],pathIndices:i,siblings:t,leafIndex:n}}async verifyProof(e){return r.verifyProof(e,this._hash)}static async verifyProof(e,t){requireObject(e,\"proof\"),requireTypes(e.root,\"proof.root\",[\"number\",\"string\",\"bigint\"]),requireTypes(e.leaf,\"proof.leaf\",[\"number\",\"string\",\"bigint\"]),requireArray(e.siblings,\"proof.siblings\"),requireArray(e.pathIndices,\"proof.pathIndices\");let i=e.leaf;for(let n=0;n<e.siblings.length;n+=1){let o=e.siblings[n].slice();o.splice(e.pathIndices[n],0,i),i=await t(o);}return e.root===i}serialize(){return this._nodes.map(e=>e.map(t=>`0x${t.toString(16).padStart(64,\"0\")}`))}loadFromSerialized(e){if(!Array.isArray(e)||e.length===0)throw new Error(\"Invalid serialized tree: empty payload\");let t=this.depth+1;if(e.length!==t)throw new Error(`Serialized tree depth mismatch: expected ${t} layers, got ${e.length}`);for(let i=0;i<e.length;i+=1){let n=e[i];if(!Array.isArray(n))throw new Error(`Invalid serialized tree: layer ${i} is not an array`);this._nodes[i]=n.map(o=>BigInt(o));}if(!this._nodes[this.depth]||this._nodes[this.depth][0]===void 0)throw new Error(\"Invalid serialized tree: missing root\");if(this.zeroes.length!==this.depth){this.zeroes.length=0;for(let i=0;i<this.depth;i+=1)this.zeroes.push(0n);}}static fromSerialized(e,t,i=2){if(!Array.isArray(t)||t.length===0)throw new Error(\"Invalid serialized tree: empty payload\");let n=t.length-1,o=new r(e,n,i);return o.loadFromSerialized(t),o}};BigInt(\"0x2523648240000001ba344d80000000086121000000000013a700000000000012\");async function oe(r){return poseidon2HashAsync(r.map(e=>BigInt(e)))}async function U(r,e,t){if(e<0||e>=r.length)throw new Error(\"Invalid index\");let i=0,n=2,o=new O(oe,t,n);await o.initialize(i,r);let a=o.createProof(e);return {root:G(BigInt(a.root)),index:a.leafIndex,path:a.siblings.flatMap(c=>G(BigInt(c)))}}D();var S=class extends AsnArray{constructor(e){super(e),Object.setPrototypeOf(this,S.prototype);}};S=l([AsnType({type:AsnTypeTypes.Set,itemType:Attribute})],S);var M=class{constructor(e={}){this.number=1;this.hash=new ArrayBuffer(0);Object.assign(this,e);}};l([AsnProp({type:AsnPropTypes.Integer})],M.prototype,\"number\",2),l([AsnProp({type:AsnPropTypes.OctetString})],M.prototype,\"hash\",2);var B=class{constructor(e={}){this.ldsVersion=\"\";this.unicodeVersion=\"\";Object.assign(this,e);}};l([AsnProp({type:AsnPropTypes.PrintableString})],B.prototype,\"ldsVersion\",2),l([AsnProp({type:AsnPropTypes.PrintableString})],B.prototype,\"unicodeVersion\",2);var x=class{constructor(e){this.value=\"\";e&&(typeof e==\"string\"?this.value=e:Object.assign(this,e));}};l([AsnProp({type:AsnPropTypes.ObjectIdentifier})],x.prototype,\"value\",2),x=l([AsnType({type:AsnTypeTypes.Choice})],x);var f=class{constructor(e={}){this.version=1;this.hashAlgorithm=new DigestAlgorithmIdentifier;this.dataGroups=[];Object.assign(this,e);}};l([AsnProp({type:AsnPropTypes.Integer})],f.prototype,\"version\",2),l([AsnProp({type:DigestAlgorithmIdentifier})],f.prototype,\"hashAlgorithm\",2),l([AsnProp({type:M,repeated:\"sequence\"})],f.prototype,\"dataGroups\",2),l([AsnProp({type:B,optional:true})],f.prototype,\"versionInfo\",2);var P=class{constructor(e={}){this.version=0;this.certificates=[];Object.assign(this,e);}};l([AsnProp({type:AsnPropTypes.Integer})],P.prototype,\"version\",2),l([AsnProp({type:Certificate,repeated:\"set\"})],P.prototype,\"certificates\",2),P=l([AsnType({type:AsnTypeTypes.Sequence})],P);D();if(typeof window>\"u\")try{let r=Ie(\"crypto\");crypto=r;}catch{}ge();var fe=\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";var k=[18,32];function $e(r){if(!r||typeof r!=\"string\")throw new Error(\"Input must be a non-empty string\");let e=new Uint8Array(34),t=BigInt(0);for(let n=0;n<r.length;n++){let o=r[n],a=fe.indexOf(o);if(a===-1)throw new Error(`Invalid base58 character: ${o}`);t=t*BigInt(58)+BigInt(a);}for(let n=e.length-1;t>0n&&n>=0;n--)e[n]=Number(t&BigInt(255)),t=t>>BigInt(8);let i=0;for(let n=0;n<r.length&&r[n]===\"1\";n++)i++;for(let n=0;n<i&&n<e.length;n++)e[n]=0;return e}function qe(r){if(!(r instanceof Uint8Array))throw new Error(\"Input must be a Uint8Array\");if(r.length===0)return \"\";let e=0;for(;e<r.length&&r[e]===0;)e++;let t=BigInt(0);for(let o=e;o<r.length;o++)t=t*BigInt(256)+BigInt(r[o]);let i=\"\";for(;t>0n;){let o=Number(t%BigInt(58));i=fe[o]+i,t=t/BigInt(58);}return \"1\".repeat(e)+i}function Ye(r){if(!r||typeof r!=\"string\")throw new Error(\"CID must be a non-empty string\");if(!r.startsWith(\"Qm\"))throw new Error('Invalid CID format: expected a CIDv0 starting with \"Qm\"');let e=$e(r);if(e.length<2||e[0]!==k[0]||e[1]!==k[1])throw new Error(\"Invalid CIDv0: missing or incorrect sha2-256 multihash prefix\");let t=\"0x\";for(let i=2;i<e.length;i++)t+=e[i].toString(16).padStart(2,\"0\").toUpperCase();return t}function Ze(r){if(!r||typeof r!=\"string\")throw new Error(\"Input must be a non-empty hex string\");if(!r.match(/^(0x)?[0-9a-fA-F]+$/i))throw new Error(\"Invalid hex string format\");r=r.startsWith(\"0x\")?r.substring(2):r,r.length>64?r=r.substring(r.length-64):r.length<64&&(r=r.padStart(64,\"0\"));let e=new Uint8Array(34);e[0]=k[0],e[1]=k[1];for(let t=0;t<r.length;t+=2){let i=parseInt(r.substring(t,t+2),16);e[2+t/2]=i;}return qe(e)}var de=16,he=12,$=1,q=2,Y=3,Z=4,J=5,le=1,Da=2,j=[\"ICAO\",\"DE\",\"NL\",\"IT\",\"ES\",\"CH\",\"SE\",\"IN\",\"BD\"],Na=1,xa=2;function Ma(r){let e=0n;for(let t of r){let i=j.indexOf(t);if(i===-1)throw new Error(`Invalid tag: ${t}`);e|=0xffn<<BigInt(i*8);}return e}function Ba(r){let e=[];for(let t=0;t<j.length;t++){let i=0xffn<<BigInt(t*8);(r&i)===i&&e.push(j[t]);}return e}function V(r,e=253){let t=Math.pow(26,2),i=Math.ceil(t/e),n=Array(i).fill(0n),o=65;for(let a of r){let c=(a.charCodeAt(0)-o)*26+a.charCodeAt(1)-o,s=Math.floor(c/e);n[s]|=1n<<BigInt(c%e);}return n}function _a(r,e=253){let t=Math.pow(26,2),i=Math.ceil(t/e),n=[],o=65;for(let a=0;a<i;a++)for(let c=0;c<e;c++){let s=a*e+c,d=Math.floor(s/e);if((r[d]&1n<<BigInt(s%e))===0n)continue;let _=String.fromCharCode(Math.floor(s/26)+o),Ce=String.fromCharCode(s%26+o);n.push(`${_}${Ce}`);}return n}function Ra(r){let e={\"SHA-1\":$,\"SHA-224\":q,\"SHA-256\":Y,\"SHA-384\":Z,\"SHA-512\":J};if(e[r]===void 0)throw new Error(`Unsupported hash algorithm: ${r}`);return e[r]}function Je(r){if(r.type===\"RSA\")return u.from(r.modulus).toUInt8Array();if(r.type===\"EC\")return u.from(r.public_key_x).concat(u.from(r.public_key_y)).toUInt8Array();throw new Error(\"Unsupported signature algorithm\")}async function ue(r,e){let t=e?.version??0;y(t===0||t===1,`Unsupported Packaged Certificates version: ${t}`);let i=e?.tags?V(e.tags):r?.tags?V(r.tags):[0n,0n,0n];y(i.length===3,\"Tags must be exactly 3 fields\");let n=e?.type??le;y(n>=0&&n<=255,`Certificate type must fit in a single byte: ${n}`),y(r?.country?.length===3,`Country code must be 3 characters: ${r?.country}`);let o=Je(r.public_key);if(t===0)return poseidon2HashAsync([...i,BigInt(g(new Uint8Array([n,r.country.charCodeAt(0),r.country.charCodeAt(1),r.country.charCodeAt(2)]),31)[0]),...g(o,31).map(a=>BigInt(a))]);if(t===1){y(r.fingerprint!==void 0,\"Certificate fingerprint required\");let a=BigInt(r.fingerprint),c=new Uint8Array(4);return c[0]=r.validity.not_after>>24&255,c[1]=r.validity.not_after>>16&255,c[2]=r.validity.not_after>>8&255,c[3]=r.validity.not_after&255,poseidon2HashAsync([...i,BigInt(g(new Uint8Array([n,r.country.charCodeAt(0),r.country.charCodeAt(1),r.country.charCodeAt(2),...c]),31)[0]),a,...g(o,31).map(s=>BigInt(s))])}else throw new Error(`Unsupported Packaged Certificates version: ${t}`)}async function pe(r,e=0){let t=await Promise.all(r.map(i=>ue(i,{version:e})));return t.sort((i,n)=>i>n?1:i<n?-1:0),t}async function ye(r,e=0){let t=await pe(r,e),i=new E(de,2);return await i.initialize(0n,t),i}async function va(r,e=0){return (await ye(r,e)).root}async function wa(r){return (await ye(r.certificates,r.version)).root}async function Ka(r){let e;if(r.circuits!==void 0)e=r.circuits.map(i=>BigInt(i.vkey_hash));else if(r.hashes!==void 0)e=r.hashes.map(i=>BigInt(i));else throw new Error(\"Either circuits or hashes must be provided\");e.sort((i,n)=>i>n?1:i<n?-1:0);let t=new E(he,2);return await t.initialize(0n,e),t.root}function et(r){let e;if(r.circuits!==void 0)e=Object.values(r.circuits).map(t=>BigInt(t.hash));else throw new Error(\"Circuits must be provided\");return e.sort((t,i)=>t>i?1:t<i?-1:0),e}async function Oa(r,e,t=U){let i=et(e),n=i.findIndex(o=>o===BigInt(r));return t(i,n,he)}export{de as CERTIFICATE_REGISTRY_HEIGHT,Na as CERTIFICATE_REGISTRY_ID,le as CERT_TYPE_CSCA,Da as CERT_TYPE_DSC,he as CIRCUIT_REGISTRY_HEIGHT,xa as CIRCUIT_REGISTRY_ID,$ as HASH_ALGORITHM_SHA1,q as HASH_ALGORITHM_SHA224,Y as HASH_ALGORITHM_SHA256,Z as HASH_ALGORITHM_SHA384,J as HASH_ALGORITHM_SHA512,j as PACKAGED_CERTIFICATE_TAGS,_a as bitsFlagToTagsArray,ye as buildMerkleTreeFromCerts,Ba as byteFlagToTagsArray,va as calculateCertificateRoot,Ka as calculateCircuitRoot,wa as calculatePackagedCertificatesRoot,Ye as cidv0ToHex,ue as getCertificateLeafHash,pe as getCertificateLeafHashes,Oa as getCircuitMerkleProof,Ra as getHashAlgorithmIdentifier,et as getLeavesFromCircuitManifest,Ze as hexToCidv0,Je as publicKeyToBytes,V as tagsArrayToBitsFlag,Ma as tagsArrayToByteFlag};","import {poseidon2HashAsync}from'@zkpassport/poseidon2';import {withRetry,Binary}from'@zkpassport/utils';import {ultraVkToFields}from'@zkpassport/utils/circuits';import {CERTIFICATE_REGISTRY_ID,buildMerkleTreeFromCerts,CIRCUIT_REGISTRY_ID,calculateCircuitRoot,hexToCidv0}from'@zkpassport/utils/registry';import Q from'debug';function l(n){return n.startsWith(\"0x\")?n.slice(2):n}function d(n){return typeof n==\"bigint\"?`0x${n.toString(16).toLowerCase().padStart(64,\"0\")}`:`0x${l(n).toLowerCase().padStart(64,\"0\")}`}var L=3;var j=\"https://certificates.zkpassport.id/mainnet\",K=\"https://certificates.zkpassport.id/sepolia\",V=\"http://localhost:3000/certificates\",y=(n,r,t)=>t?`https://ipfs.zkpassport.id/ipfs/${t}`:(r=d(r),n===1?`${j}/${r}.json`:n===11155111?`${K}/${r}.json`:`${V}/${r}.json`),C=\"https://circuits2.zkpassport.id/mainnet\",S=\"https://circuits2.zkpassport.id/sepolia\",A=\"http://localhost:3000\",h=(n,{root:r,version:t,cid:s})=>{if(r)return r=d(r),n===1?`${C}/by-root/${r}/manifest.json`:n===11155111?`${S}/by-root/${r}/manifest.json`:`${A}/by-root/${r}/manifest.json`;if(t)return n===1?`${C}/by-version/${t}/manifest.json`:n===11155111?`${S}/by-version/${t}/manifest.json`:`${A}/by-version/${t}/manifest.json`;if(s)return `https://ipfs.zkpassport.id/ipfs/${s}`;throw new Error(\"No root, version or cid provided\")},R=(n,r,t)=>t?`https://ipfs.zkpassport.id/ipfs/${t}`:(r=d(r),n===1?`${C}/by-hash/${r}.json`:n===11155111?`${S}/by-hash/${r}.json`:`${A}/by-hash/${r}.json`),f=100;var I=\"0xc3bc16e8\",w=\"0x06ac4103\",$=\"0xcb0c82c7\",U=\"0x76785af8\",k=\"0x5d8d57a6\",G=\"0xbb3dd539\",P=\"0x2aae4296\";var x=[{country:\"RUS\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"JPN\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"GBR\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"IDN\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"NGA\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"DEU\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"EST\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"LVA\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"SGP\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"VNM\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"TUR\",id_card_support:.5,residence_permit_support:0,passport_support:1},{country:\"THA\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"BRA\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"ARG\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"AUT\",id_card_support:.5,residence_permit_support:0,passport_support:1},{country:\"FRA\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"PRT\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"ESP\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"IRL\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"ITA\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"CHE\",id_card_support:0,residence_permit_support:.5,passport_support:1},{country:\"BEL\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"LUX\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"NLD\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"POL\",id_card_support:.25,residence_permit_support:.25,passport_support:1},{country:\"DNK\",id_card_support:0,residence_permit_support:.5,passport_support:1},{country:\"SWE\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"NOR\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"SVN\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"CZE\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"NOR\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"LTU\",id_card_support:.5,residence_permit_support:.5,passport_support:.5},{country:\"FIN\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"MEX\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"IND\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"PAK\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"IRN\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"GRC\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"ROU\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"KAZ\",id_card_support:.25,residence_permit_support:0,passport_support:.5},{country:\"BLR\",id_card_support:.25,residence_permit_support:0,passport_support:.5},{country:\"MAR\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"DZA\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"URY\",id_card_support:.5,residence_permit_support:0,passport_support:1},{country:\"PRY\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"CHL\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"PER\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"ECU\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"PAN\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"VEN\",id_card_support:0,residence_permit_support:0,passport_support:0},{country:\"COL\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"CRI\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"USA\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"CAN\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"GHA\",id_card_support:.25,residence_permit_support:0,passport_support:.5},{country:\"SEN\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"ETH\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"JOR\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"OMN\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"CHN\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"KOR\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"PRK\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"UAE\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"ARE\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"ISR\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"SAU\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"AUS\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"NZL\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"MYS\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"TWN\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"PHL\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"UZB\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"UZB\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"TKM\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"TJK\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"GEO\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"ARM\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"AZE\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"CYP\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"RKS\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"MNE\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"ALB\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"HRV\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"SRB\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"HUN\",id_card_support:.5,residence_permit_support:.5,passport_support:1},{country:\"MDA\",id_card_support:0,residence_permit_support:0,passport_support:0},{country:\"UKR\",id_card_support:.5,residence_permit_support:0,passport_support:1},{country:\"BGR\",id_card_support:.5,residence_permit_support:0,passport_support:1},{country:\"LIE\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"VAT\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"SMR\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"JAM\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"SLE\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"BEN\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"CMR\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"KEN\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"UGA\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"RWA\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"TZA\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"ZWE\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"BWA\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"YEM\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"LBN\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"QAT\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"KWT\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"IRQ\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"PSE\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"ISL\",id_card_support:.5,residence_permit_support:0,passport_support:1},{country:\"MCO\",id_card_support:.5,residence_permit_support:0,passport_support:1},{country:\"MNG\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"AND\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"ATG\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"BHR\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"BRB\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"BLZ\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"BIH\",id_card_support:0,residence_permit_support:0,passport_support:1},{country:\"BMU\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"DMA\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"CIV\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"NPL\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"MKD\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"KNA\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"VCT\",id_card_support:0,residence_permit_support:0,passport_support:.5},{country:\"SYC\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"SYR\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"BHS\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"GMB\",id_card_support:0,residence_permit_support:0,passport_support:.75},{country:\"ZWE\",id_card_support:0,residence_permit_support:0,passport_support:.25},{country:\"TLS\",id_card_support:0,residence_permit_support:0,passport_support:.25}];var a=Q(\"zkpassport:registry\"),X={1:{rpcUrl:\"https://eth-mainnet.g.alchemy.com/v2/in6UjcATST36yyKuk83yb1yukKs65u8G\",rootRegistry:\"0x1D0000020038d6E40E1d98e09fA1bb3A7DAA8B70\",registryHelper:\"0x0000000000000000000000000000000000000000\",packagedCertsUrlGenerator:y,circuitManifestUrlGenerator:h,packagedCircuitUrlGenerator:R},11155111:{rpcUrl:\"https://eth-sepolia.g.alchemy.com/v2/in6UjcATST36yyKuk83yb1yukKs65u8G\",rootRegistry:\"0x1D0000020038d6E40E1d98e09fA1bb3A7DAA8B70\",registryHelper:\"0x0ea1dBf32763D2Bab8bf7C33d6c17771506510D6\",packagedCertsUrlGenerator:y,circuitManifestUrlGenerator:h,packagedCircuitUrlGenerator:R},31337:{rpcUrl:\"http://localhost:8545\",rootRegistry:\"0x5FbDB2315678afecb367f032d93F642f64180aa3\",registryHelper:\"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512\",packagedCertsUrlGenerator:y,circuitManifestUrlGenerator:h,packagedCircuitUrlGenerator:R}},b=class n{constructor({rpcUrl:r,rootRegistry:t,chainId:s,registryHelper:o,packagedCertsUrlGenerator:e,circuitManifestUrlGenerator:p,packagedCircuitUrlGenerator:i,retryCount:c}={}){if(s===void 0)throw new Error(\"chainId is required\");this.chainId=s;let _=X[s];this.rpcUrl=r||_?.rpcUrl,this.rootRegistry=t||_?.rootRegistry,this.registryHelper=o||_?.registryHelper,this.packagedCertsUrlGenerator=e||_?.packagedCertsUrlGenerator,this.circuitManifestUrlGenerator=p||_?.circuitManifestUrlGenerator,this.packagedCircuitUrlGenerator=i||_?.packagedCircuitUrlGenerator,this.retryCount=c||L;}async getLatestCertificateRoot(){a(\"Getting latest certificate root\",{registry:this.rootRegistry});let r=await this.rpcRequest(this.rootRegistry,I+CERTIFICATE_REGISTRY_ID.toString(16).padStart(64,\"0\"));if(!r.ok)throw new Error(`Failed to get latest certificate root: ${r.status} ${r.statusText}`);let t=await r.json();if(t.error)throw new Error(`Error from blockchain: ${t.error.message}`);return a(`Got latest certificates root: ${t.result}`),t.result}async isCertificateRootValid(r,t){r=d(r);let s=t??Math.floor(Date.now()/1e3),o=await this.rpcRequest(this.rootRegistry,P+CERTIFICATE_REGISTRY_ID.toString(16).padStart(64,\"0\")+l(r)+s.toString(16).padStart(64,\"0\"));if(!o.ok)throw new Error(`Error checking if certificate root is valid: ${o.status} ${o.statusText}`);let e=await o.json();if(e.error)throw new Error(`Error from blockchain: ${e.error.message}`);return parseInt(l(e.result))===1}async getCertificates(r,{validate:t=true,ipfs:s=false}={}){if(r?r=d(r):r=await this.getLatestCertificateRoot(),s)throw new Error(\"IPFS flag not implemented\");let o=this.packagedCertsUrlGenerator(this.chainId,r);a(\"Getting certificates from:\",o);let e=await withRetry(()=>fetch(o),this.retryCount);if(!e.ok)throw new Error(`Failed to get certificates for root ${r}: ${e.status} ${e.statusText}`);let p=await e.json();if(a(`Got ${p.certificates?.length||0} packaged certificates`),!p.certificates||!Array.isArray(p.certificates))throw new Error(\"Invalid certificates returned\");if(!p.serialised||!Array.isArray(p.serialised))throw new Error(\"Invalid serialised certificates tree returned\");if(t&&!await this.validateCertificates(p,r))throw new Error(`Validation failed for packaged certificates: ${r}`);return p}async validateCertificates(r,t){try{let{root:s}=await buildMerkleTreeFromCerts(r.certificates,r.version),o=t.startsWith(\"0x\")?t:`0x${t}`,e=s.toLowerCase()===o.toLowerCase();return a(e?`Validated packaged certificates against root ${s}`:`Error validating packaged certificates. Expected: ${o} Got: ${s}`),e}catch(s){return console.error(\"Error validating circuit manifest:\",s),false}}async getHistoricalCertificateRoots(r,t=f){if(!this.registryHelper)throw new Error(\"Historical roots helper address not configured\");let s=typeof r==\"string\"?l(r):r??1,o=typeof s==\"number\"?`${w}${CERTIFICATE_REGISTRY_ID.toString(16).padStart(64,\"0\")}${s.toString(16).padStart(64,\"0\")}${t.toString(16).padStart(64,\"0\")}`:`${$}${CERTIFICATE_REGISTRY_ID.toString(16).padStart(64,\"0\")}${s.padStart(64,\"0\")}${t.toString(16).padStart(64,\"0\")}`;try{let e=await this.rpcRequest(this.registryHelper,o);return this._handleHistoricalRootsResponse(e)}catch(e){throw e instanceof Error?e:new Error(String(e))}}async getAllHistoricalCertificateRoots(r=f,t){if(!this.registryHelper)throw new Error(\"Historical roots helper address is not configured\");let s=0,o=false,e=1,p=[];for(;!o;){let{roots:i,isLastPage:c}=await this.getHistoricalCertificateRoots(e,r);if(p.push(...i),o=c,s++,i.length>0&&(e+=i.length),t&&t(s,i,p.length,o),i.length===0)break}return p}async getCertificateRootDetails(r){if(r){a(\"Getting certificate root details\");let s=await this.rpcRequest(this.registryHelper,G+CERTIFICATE_REGISTRY_ID.toString(16).padStart(64,\"0\")+l(r).padStart(64,\"0\"));if(!s.ok)throw new Error(`Failed to get certificate root details: ${s.status} ${s.statusText}`);return this._handleRootDetailsResponse(s)}a(\"Getting latest certificate root details\");let t=await this.rpcRequest(this.registryHelper,U+CERTIFICATE_REGISTRY_ID.toString(16).padStart(64,\"0\"));if(!t.ok)throw new Error(`Failed to get latest certificate root details: ${t.status} ${t.statusText}`);return this._handleRootDetailsResponse(t)}async getLatestCircuitRoot(){a(\"Getting latest circuit root\",{registry:this.rootRegistry});let r=await this.rpcRequest(this.rootRegistry,I+CIRCUIT_REGISTRY_ID.toString(16).padStart(64,\"0\"));if(!r.ok)throw new Error(`Failed to get latest circuit root: ${r.status} ${r.statusText}`);let t=await r.json();if(t.error)throw new Error(`Error from blockchain: ${t.error.message}`);return a(`Got latest circuit root: ${t.result}`),t.result}async isCircuitRootValid(r,t){r=d(r);let s=t??Math.floor(Date.now()/1e3),o=await this.rpcRequest(this.rootRegistry,P+CIRCUIT_REGISTRY_ID.toString(16).padStart(64,\"0\")+l(r)+s.toString(16).padStart(64,\"0\"));if(!o.ok)throw new Error(`Error checking if circuit root is valid: ${o.status} ${o.statusText}`);let e=await o.json();if(e.error)throw new Error(`Error from blockchain: ${e.error.message}`);return parseInt(l(e.result))===1}async getCircuitManifest(r,{validate:t=true,ipfs:s=false,version:o=void 0}={}){if(!r&&!o?r=await this.getLatestCircuitRoot():r&&(r=d(r)),s)throw new Error(\"IPFS flag not implemented\");let e=this.circuitManifestUrlGenerator(this.chainId,{root:r,version:o});a(\"Getting circuit manifest from:\",e);let p=await withRetry(()=>fetch(e),this.retryCount);if(!p.ok)throw new Error(`Failed to get circuit manifest for root ${r}: ${p.status} ${p.statusText}`);let i=await p.json();if(!i.version||!i.root||!i.circuits)throw new Error(\"Invalid circuit manifest returned\");if(a(`Got circuit manifest for root ${r}`),t&&!await this.validateCircuitManifest(i,r))throw new Error(`Validation failed for circuit manifest: ${r}`);return i}async validateCircuitManifest(r,t){try{let s=Object.values(r.circuits).map(i=>i.hash),o=d(await calculateCircuitRoot({hashes:s})),e=d(t||r.root),p=o.toLowerCase()===e.toLowerCase();return a(p?`Validated circuit manifest against root ${o}`:`Error validating circuit manifest. Expected: ${e} Got: ${o}`),p}catch(s){return console.error(\"Error validating circuit manifest:\",s),false}}static async validatePackagedCircuit(r,t){let s=d(t||r.vkey_hash),o=ultraVkToFields(Binary.fromBase64(r.vkey).toUInt8Array()),e=d((await poseidon2HashAsync(o.map(BigInt))).toString(16)),p=e===s;return a(p?`Validated packaged circuit against hash ${s}`:`Error validating packaged circuit. Expected: ${s} Got: ${e}`),p}async getPackagedCircuit(r,t,{validate:s=true,ipfs:o=false}={}){if(o)throw new Error(\"IPFS flag not implemented\");let e=t.circuits[r]?.hash||null;if(!e)throw new Error(`Circuit ${r} not found in manifest`);let p=this.packagedCircuitUrlGenerator(this.chainId,e);a(\"Getting packaged circuit from:\",p);let i=await withRetry(()=>fetch(p),this.retryCount);if(!i.ok)throw new Error(`Failed to get packaged circuit for ${r}: ${i.status} ${i.statusText}`);let c=await i.json();if(!c.name||!c.hash||!c.noir_version||!c.bb_version)throw new Error(`Invalid packaged circuit returned for ${r}`);if(a(`Got packaged circuit for ${r}`),s&&!await n.validatePackagedCircuit(c,e))throw new Error(`Validation failed for packaged circuit: ${r}`);return c}async getHistoricalCircuitRoots(r,t=f){if(!this.registryHelper)throw new Error(\"Historical roots helper address not configured\");let s=typeof r==\"string\"?l(r):r??1,o=typeof s==\"number\"?`${w}${CIRCUIT_REGISTRY_ID.toString(16).padStart(64,\"0\")}${s.toString(16).padStart(64,\"0\")}${t.toString(16).padStart(64,\"0\")}`:`${$}${CIRCUIT_REGISTRY_ID.toString(16).padStart(64,\"0\")}${s.padStart(64,\"0\")}${t.toString(16).padStart(64,\"0\")}`;try{let e=await this.rpcRequest(this.registryHelper,o);return this._handleHistoricalRootsResponse(e)}catch(e){throw e instanceof Error?e:new Error(String(e))}}async getAllHistoricalCircuitRoots(r=f,t){if(!this.registryHelper)throw new Error(\"Historical roots helper address is not configured\");let s=0,o=false,e=1,p=[];for(;!o;){let{roots:i,isLastPage:c}=await this.getHistoricalCircuitRoots(e,r);if(p.push(...i),o=c,s++,i.length>0&&(e+=i.length),t&&t(s,i,p.length,o),i.length===0)break}return p}async getCircuitRootDetails(r){if(r){a(\"Getting circuit root details\");let s=await this.rpcRequest(this.registryHelper,G+CIRCUIT_REGISTRY_ID.toString(16).padStart(64,\"0\")+l(r).padStart(64,\"0\"));if(!s.ok)throw new Error(`Failed to get circuit root details: ${s.status} ${s.statusText}`);return this._handleRootDetailsResponse(s)}a(\"Getting latest circuit root details\");let t=await this.rpcRequest(this.registryHelper,U+CIRCUIT_REGISTRY_ID.toString(16).padStart(64,\"0\"));if(!t.ok)throw new Error(`Failed to get latest circuit root details: ${t.status} ${t.statusText}`);return this._handleRootDetailsResponse(t)}async getRegistryAddress(r){a(`Getting registry address for ID ${r} from root registry ${this.rootRegistry}`);let t;if(typeof r==\"string\"&&r.startsWith(\"0x\"))t=`0x${r.substring(2).padStart(64,\"0\")}`;else if(typeof r==\"number\")t=`0x${r.toString(16).padStart(64,\"0\")}`;else throw new Error(`Invalid registry ID: ${r}`);try{let s=await this.rpcRequest(this.rootRegistry,`${k}${t.slice(2)}`);if(!s.ok)throw new Error(`Error getting address for registry ID ${r}: ${s.status} ${s.statusText}`);let o=await s.json();if(o.error)throw new Error(`Error getting address for registry ID ${r}: ${o.error.message}`);if(o.result===\"0x0000000000000000000000000000000000000000000000000000000000000000\")throw new Error(`Registry ID ${r} doesn't exist`);let e=`0x${o.result.slice(-40)}`;return a(`Got address for registry ID ${r}: ${e}`),e}catch(s){throw new Error(`Error getting address for registry ID ${r}: ${s}`)}}async isDocumentSupported(r,t,s=\"passport\"){if(t&&!(await this.getCertificates()).certificates.filter(i=>i.country===r).some(i=>Math.floor(t.getTime()/1e3)>=i.validity.not_before))return 0;let o=x.find(e=>e.country===r);return o?o[`${s}_support`]:0}getRootRegistryAddress(){return this.rootRegistry}async getCertificateRegistryAddress(){return this.getRegistryAddress(CERTIFICATE_REGISTRY_ID)}async getCircuitRegistryAddress(){return this.getRegistryAddress(CIRCUIT_REGISTRY_ID)}getUrlForPackagedCertificates(r,t){return this.packagedCertsUrlGenerator(this.chainId,r,t)}getUrlForCircuitManifestByRoot(r){return this.circuitManifestUrlGenerator(this.chainId,{root:r})}getUrlForCircuitManifestByVersion(r){return this.circuitManifestUrlGenerator(this.chainId,{version:r})}getUrlForCircuitManifestByCid(r){return this.circuitManifestUrlGenerator(this.chainId,{cid:r})}getUrlForPackagedCircuits(r,t){return this.packagedCircuitUrlGenerator(this.chainId,r,t)}async rpcRequest(r,t){return withRetry(()=>fetch(this.rpcUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({jsonrpc:\"2.0\",id:Math.floor(Math.random()*1e6),method:\"eth_call\",params:[{to:r,data:t},\"latest\"]})}),this.retryCount)}async _handleRootDetailsResponse(r){let t=await r.json();if(t.error)throw new Error(`Error from node: ${t.error.message}`);if(t.result){let s=t.result.slice(2),o=parseInt(s.slice(0,64),16),e=`0x${s.slice(64,128)}`,p=new Date(parseInt(s.slice(128,192),16)*1e3),i=parseInt(s.slice(192,256),16),c=i===0?void 0:new Date(i*1e3),_=parseInt(s.slice(256,320),16)===1,u=parseInt(s.slice(320,384),16),T=hexToCidv0(`0x${s.slice(384,448)}`);return {index:o,root:e,validFrom:p,validTo:c,revoked:_,leaves:u,cid:T,isLatest:c===void 0}}else throw new Error(\"No result returned from node\")}async _handleHistoricalRootsResponse(r){let t=await r.json();if(t.error)throw new Error(t?.error?.message||\"Error getting roots\");if(t.result){let s=t.result.slice(2),o=parseInt(s.slice(0,64),16),e=parseInt(s.slice(64,128),16)===1,p=s.slice(o*2),i=parseInt(p.slice(0,64),16),c=[];for(let _=0;_<i;_++){let u=64+_*7*64,T=parseInt(p.slice(u,u+64),16),O=`0x${p.slice(u+64,u+128)}`,H=new Date(parseInt(p.slice(u+128,u+192),16)*1e3),D=parseInt(p.slice(u+192,u+256),16),N=D===0?void 0:new Date(D*1e3),M=parseInt(p.slice(u+256,u+320),16)===1,F=parseInt(p.slice(u+320,u+384),16),B=hexToCidv0(`0x${p.slice(u+384,u+448)}`);c.push({root:O,validFrom:H,validTo:N,revoked:M,cid:B,leaves:F,isLatest:_===i-1&&e,index:T});}return {roots:c,isLastPage:e}}return {roots:[],isLastPage:true}}};\nexport{b as RegistryClient};","var __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n if (typeof require !== \"undefined\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\n\nexport {\n __require\n};\n","import {\n __require\n} from \"./chunk-3RG5ZIWI.js\";\n\n// src/websocket.ts\nfunction isNodeEnvironment() {\n return (\n // Process object with versions (Node.js, Bun, and most server runtimes)\n typeof process !== \"undefined\" && process.versions != null && // Absence of browser-specific window object\n typeof window === \"undefined\"\n );\n}\nasync function getWebSocketClient(url, origin) {\n if (isNodeEnvironment()) {\n try {\n const wsModule = await import(\"ws\").catch(() => {\n try {\n return { default: __require(\"ws\") };\n } catch {\n throw new Error(\"WebSocket implementation 'ws' not found. Please install it with: npm install ws\");\n }\n });\n const WebSocketImpl = wsModule.default || wsModule.WebSocket || wsModule;\n return new WebSocketImpl(url, { headers: { Origin: origin || \"nodejs\" } });\n } catch (error) {\n console.error(\"Failed to create WebSocket client:\", error);\n throw new Error(\"WebSocket implementation 'ws' not found. Please install it with: npm install ws\");\n }\n }\n return new WebSocket(url);\n}\n\nexport {\n isNodeEnvironment,\n getWebSocketClient\n};\n","// src/constants.ts\nvar DEFAULT_MAX_RECONNECT_ATTEMPTS = 10;\nvar DEFAULT_WS_ENDPOINT = \"wss://bridge.zkpassport.id\";\nvar DEFAULT_PING_INTERVAL = 3e4;\nvar PROTOCOL_VERSION = \"1\";\n\nexport {\n DEFAULT_MAX_RECONNECT_ATTEMPTS,\n DEFAULT_WS_ENDPOINT,\n DEFAULT_PING_INTERVAL,\n PROTOCOL_VERSION\n};\n","// src/crypto.ts\nvar cryptoPolyfill = typeof window !== \"undefined\" ? {\n // Simplified implementations for browser\n getRandomValues: (buffer) => {\n return window.crypto.getRandomValues(buffer);\n }\n} : globalThis.crypto;\nvar cryptoAPI = typeof window !== \"undefined\" ? window.crypto : typeof globalThis !== \"undefined\" && globalThis.crypto ? globalThis.crypto : cryptoPolyfill;\nfunction getRandomBytes(length) {\n const randomValues = new Uint8Array(length);\n if (cryptoAPI && typeof cryptoAPI.getRandomValues === \"function\") {\n cryptoAPI.getRandomValues(randomValues);\n return randomValues;\n }\n throw new Error(\n \"No secure random number generator available in this environment. Make sure you're in a secure context that provides crypto APIs.\"\n );\n}\n\nexport {\n getRandomBytes\n};\n","import {\n getRandomBytes\n} from \"./chunk-NCCC6TF4.js\";\n\n// src/utils.ts\nfunction parseOriginHeader(origin) {\n try {\n const parsed = new URL(origin);\n return `${parsed.protocol}//${parsed.host.split(\":\")[0]}`;\n } catch {\n return origin;\n }\n}\nfunction generateRandomId(bytes = 16) {\n const randomBytes = getRandomBytes(bytes);\n return Buffer.from(randomBytes).toString(\"hex\");\n}\n\nexport {\n parseOriginHeader,\n generateRandomId\n};\n","/*! noble-secp256k1 - MIT License (c) 2019 Paul Miller (paulmillr.com) */\n/**\n * 4KB JS implementation of secp256k1 ECDSA / Schnorr signatures & ECDH.\n * Compliant with RFC6979 & BIP340.\n * @module\n */\n/**\n * Curve params. secp256k1 is short weierstrass / koblitz curve. Equation is y² == x³ + ax + b.\n * * P = `2n**256n-2n**32n-2n**977n` // field over which calculations are done\n * * N = `2n**256n - 0x14551231950b75fc4402da1732fc9bebfn` // group order, amount of curve points\n * * h = `1n` // cofactor\n * * a = `0n` // equation param\n * * b = `7n` // equation param\n * * Gx, Gy are coordinates of Generator / base point\n */\nconst secp256k1_CURVE = {\n p: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,\n n: 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n,\n h: 1n,\n a: 0n,\n b: 7n,\n Gx: 0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798n,\n Gy: 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8n,\n};\nconst { p: P, n: N, Gx, Gy, b: _b } = secp256k1_CURVE;\nconst L = 32; // field / group byte length\nconst L2 = 64;\n// Helpers and Precomputes sections are reused between libraries\n// ## Helpers\n// ----------\n// error helper, messes-up stack trace\nconst err = (m = '') => {\n throw new Error(m);\n};\nconst isBig = (n) => typeof n === 'bigint'; // is big integer\nconst isStr = (s) => typeof s === 'string'; // is string\nconst isBytes = (a) => a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n/** assert is Uint8Array (of specific length) */\nconst abytes = (a, l) => !isBytes(a) || (typeof l === 'number' && l > 0 && a.length !== l)\n ? err('Uint8Array expected')\n : a;\n/** create Uint8Array */\nconst u8n = (len) => new Uint8Array(len);\nconst u8fr = (buf) => Uint8Array.from(buf);\nconst padh = (n, pad) => n.toString(16).padStart(pad, '0');\nconst bytesToHex = (b) => Array.from(abytes(b))\n .map((e) => padh(e, 2))\n .join('');\nconst C = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; // ASCII characters\nconst _ch = (ch) => {\n if (ch >= C._0 && ch <= C._9)\n return ch - C._0; // '2' => 50-48\n if (ch >= C.A && ch <= C.F)\n return ch - (C.A - 10); // 'B' => 66-(65-10)\n if (ch >= C.a && ch <= C.f)\n return ch - (C.a - 10); // 'b' => 98-(97-10)\n return;\n};\nconst hexToBytes = (hex) => {\n const e = 'hex invalid';\n if (!isStr(hex))\n return err(e);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n return err(e);\n const array = u8n(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n // treat each char as ASCII\n const n1 = _ch(hex.charCodeAt(hi)); // parse first char, multiply it by 16\n const n2 = _ch(hex.charCodeAt(hi + 1)); // parse second char\n if (n1 === undefined || n2 === undefined)\n return err(e);\n array[ai] = n1 * 16 + n2; // example: 'A9' => 10*16 + 9\n }\n return array;\n};\n/** normalize hex or ui8a to ui8a */\nconst toU8 = (a, len) => abytes(isStr(a) ? hexToBytes(a) : u8fr(abytes(a)), len);\nconst cr = () => globalThis?.crypto; // WebCrypto is available in all modern environments\nconst subtle = () => cr()?.subtle ?? err('crypto.subtle must be defined');\n// prettier-ignore\nconst concatBytes = (...arrs) => {\n const r = u8n(arrs.reduce((sum, a) => sum + abytes(a).length, 0)); // create u8a of summed length\n let pad = 0; // walk through each array,\n arrs.forEach(a => { r.set(a, pad); pad += a.length; }); // ensure they have proper type\n return r;\n};\n/** WebCrypto OS-level CSPRNG (random number generator). Will throw when not available. */\nconst randomBytes = (len = L) => {\n const c = cr();\n return c.getRandomValues(u8n(len));\n};\nconst big = BigInt;\nconst arange = (n, min, max, msg = 'bad number: out of range') => isBig(n) && min <= n && n < max ? n : err(msg);\n/** modular division */\nconst M = (a, b = P) => {\n const r = a % b;\n return r >= 0n ? r : b + r;\n};\nconst modN = (a) => M(a, N);\n/** Modular inversion using eucledian GCD (non-CT). No negative exponent for now. */\n// prettier-ignore\nconst invert = (num, md) => {\n if (num === 0n || md <= 0n)\n err('no inverse n=' + num + ' mod=' + md);\n let a = M(num, md), b = md, x = 0n, y = 1n, u = 1n, v = 0n;\n while (a !== 0n) {\n const q = b / a, r = b % a;\n const m = x - u * q, n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n return b === 1n ? M(x, md) : err('no inverse'); // b is gcd at this point\n};\nconst callHash = (name) => {\n // @ts-ignore\n const fn = etc[name];\n if (typeof fn !== 'function')\n err('hashes.' + name + ' not set');\n return fn;\n};\nconst apoint = (p) => (p instanceof Point ? p : err('Point expected'));\n// ## End of Helpers\n// -----------------\n/** secp256k1 formula. Koblitz curves are subclass of weierstrass curves with a=0, making it x³+b */\nconst koblitz = (x) => M(M(x * x) * x + _b);\n/** assert is field element or 0 */\nconst afield0 = (n) => arange(n, 0n, P);\n/** assert is field element */\nconst afield = (n) => arange(n, 1n, P);\n/** assert is group elem */\nconst agroup = (n) => arange(n, 1n, N);\nconst isEven = (y) => (y & 1n) === 0n;\n/** create Uint8Array of byte n */\nconst u8of = (n) => Uint8Array.of(n);\nconst getPrefix = (y) => u8of(isEven(y) ? 0x02 : 0x03);\n/** lift_x from BIP340 calculates square root. Validates x, then validates root*root. */\nconst lift_x = (x) => {\n // Let c = x³ + 7 mod p. Fail if x ≥ p. (also fail if x < 1)\n const c = koblitz(afield(x));\n // c = √y\n // y = c^((p+1)/4) mod p\n // This formula works for fields p = 3 mod 4 -- a special, fast case.\n // Paper: \"Square Roots from 1;24,51,10 to Dan Shanks\".\n let r = 1n;\n for (let num = c, e = (P + 1n) / 4n; e > 0n; e >>= 1n) {\n // powMod: modular exponentiation.\n if (e & 1n)\n r = (r * num) % P; // Uses exponentiation by squaring.\n num = (num * num) % P; // Not constant-time.\n }\n return M(r * r) === c ? r : err('sqrt invalid'); // check if result is valid\n};\n/** Point in 3d xyz projective coordinates. 3d takes less inversions than 2d. */\nclass Point {\n static BASE;\n static ZERO;\n px;\n py;\n pz;\n constructor(px, py, pz) {\n this.px = afield0(px);\n this.py = afield(py); // y can't be 0 in Projective\n this.pz = afield0(pz);\n Object.freeze(this);\n }\n /** Convert Uint8Array or hex string to Point. */\n static fromBytes(bytes) {\n abytes(bytes);\n let p = undefined;\n // First byte is prefix, rest is data. There are 2 kinds: compressed & uncompressed:\n // * [0x02 or 0x03][32-byte x coordinate]\n // * [0x04] [32-byte x coordinate][32-byte y coordinate]\n const head = bytes[0];\n const tail = bytes.subarray(1);\n const x = sliceBytesNumBE(tail, 0, L);\n const len = bytes.length;\n // Compressed 33-byte point, 0x02 or 0x03 prefix\n if (len === L + 1 && [0x02, 0x03].includes(head)) {\n // Equation is y² == x³ + ax + b. We calculate y from x.\n // y = √y²; there are two solutions: y, -y. Determine proper solution based on prefix\n let y = lift_x(x);\n const evenY = isEven(y);\n const evenH = isEven(big(head));\n if (evenH !== evenY)\n y = M(-y);\n p = new Point(x, y, 1n);\n }\n // Uncompressed 65-byte point, 0x04 prefix\n if (len === L2 + 1 && head === 0x04)\n p = new Point(x, sliceBytesNumBE(tail, L, L2), 1n);\n // Validate point\n return p ? p.assertValidity() : err('bad point: not on curve');\n }\n /** Equality check: compare points P&Q. */\n equals(other) {\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = apoint(other); // checks class equality\n const X1Z2 = M(X1 * Z2);\n const X2Z1 = M(X2 * Z1);\n const Y1Z2 = M(Y1 * Z2);\n const Y2Z1 = M(Y2 * Z1);\n return X1Z2 === X2Z1 && Y1Z2 === Y2Z1;\n }\n is0() {\n return this.equals(I);\n }\n /** Flip point over y coordinate. */\n negate() {\n return new Point(this.px, M(-this.py), this.pz);\n }\n /** Point doubling: P+P, complete formula. */\n double() {\n return this.add(this);\n }\n /**\n * Point addition: P+Q, complete, exception-free formula\n * (Renes-Costello-Batina, algo 1 of [2015/1060](https://eprint.iacr.org/2015/1060)).\n * Cost: `12M + 0S + 3*a + 3*b3 + 23add`.\n */\n // prettier-ignore\n add(other) {\n const { px: X1, py: Y1, pz: Z1 } = this;\n const { px: X2, py: Y2, pz: Z2 } = apoint(other);\n const a = 0n;\n const b = _b;\n let X3 = 0n, Y3 = 0n, Z3 = 0n;\n const b3 = M(b * 3n);\n let t0 = M(X1 * X2), t1 = M(Y1 * Y2), t2 = M(Z1 * Z2), t3 = M(X1 + Y1); // step 1\n let t4 = M(X2 + Y2); // step 5\n t3 = M(t3 * t4);\n t4 = M(t0 + t1);\n t3 = M(t3 - t4);\n t4 = M(X1 + Z1);\n let t5 = M(X2 + Z2); // step 10\n t4 = M(t4 * t5);\n t5 = M(t0 + t2);\n t4 = M(t4 - t5);\n t5 = M(Y1 + Z1);\n X3 = M(Y2 + Z2); // step 15\n t5 = M(t5 * X3);\n X3 = M(t1 + t2);\n t5 = M(t5 - X3);\n Z3 = M(a * t4);\n X3 = M(b3 * t2); // step 20\n Z3 = M(X3 + Z3);\n X3 = M(t1 - Z3);\n Z3 = M(t1 + Z3);\n Y3 = M(X3 * Z3);\n t1 = M(t0 + t0); // step 25\n t1 = M(t1 + t0);\n t2 = M(a * t2);\n t4 = M(b3 * t4);\n t1 = M(t1 + t2);\n t2 = M(t0 - t2); // step 30\n t2 = M(a * t2);\n t4 = M(t4 + t2);\n t0 = M(t1 * t4);\n Y3 = M(Y3 + t0);\n t0 = M(t5 * t4); // step 35\n X3 = M(t3 * X3);\n X3 = M(X3 - t0);\n t0 = M(t3 * t1);\n Z3 = M(t5 * Z3);\n Z3 = M(Z3 + t0); // step 40\n return new Point(X3, Y3, Z3);\n }\n /**\n * Point-by-scalar multiplication. Scalar must be in range 1 <= n < CURVE.n.\n * Uses {@link wNAF} for base point.\n * Uses fake point to mitigate side-channel leakage.\n * @param n scalar by which point is multiplied\n * @param safe safe mode guards against timing attacks; unsafe mode is faster\n */\n multiply(n, safe = true) {\n if (!safe && n === 0n)\n return I;\n agroup(n);\n if (n === 1n)\n return this;\n if (this.equals(G))\n return wNAF(n).p;\n // init result point & fake point\n let p = I;\n let f = G;\n for (let d = this; n > 0n; d = d.double(), n >>= 1n) {\n // if bit is present, add to point\n // if not present, add to fake, for timing safety\n if (n & 1n)\n p = p.add(d);\n else if (safe)\n f = f.add(d);\n }\n return p;\n }\n /** Convert point to 2d xy affine point. (X, Y, Z) ∋ (x=X/Z, y=Y/Z) */\n toAffine() {\n const { px: x, py: y, pz: z } = this;\n // fast-paths for ZERO point OR Z=1\n if (this.equals(I))\n return { x: 0n, y: 0n };\n if (z === 1n)\n return { x, y };\n const iz = invert(z, P);\n // (Z * Z^-1) must be 1, otherwise bad math\n if (M(z * iz) !== 1n)\n err('inverse invalid');\n // x = X*Z^-1; y = Y*Z^-1\n return { x: M(x * iz), y: M(y * iz) };\n }\n /** Checks if the point is valid and on-curve. */\n assertValidity() {\n const { x, y } = this.toAffine(); // convert to 2d xy affine point.\n afield(x); // must be in range 1 <= x,y < P\n afield(y);\n // y² == x³ + ax + b, equation sides must be equal\n return M(y * y) === koblitz(x) ? this : err('bad point: not on curve');\n }\n /** Converts point to 33/65-byte Uint8Array. */\n toBytes(isCompressed = true) {\n const { x, y } = this.assertValidity().toAffine();\n const x32b = numTo32b(x);\n if (isCompressed)\n return concatBytes(getPrefix(y), x32b);\n return concatBytes(u8of(0x04), x32b, numTo32b(y));\n }\n /** Create 3d xyz point from 2d xy. (0, 0) => (0, 1, 0), not (0, 0, 1) */\n static fromAffine(ap) {\n const { x, y } = ap;\n return x === 0n && y === 0n ? I : new Point(x, y, 1n);\n }\n toHex(isCompressed) {\n return bytesToHex(this.toBytes(isCompressed));\n }\n static fromPrivateKey(k) {\n return G.multiply(toPrivScalar(k));\n }\n static fromHex(hex) {\n return Point.fromBytes(toU8(hex));\n }\n get x() {\n return this.toAffine().x;\n }\n get y() {\n return this.toAffine().y;\n }\n toRawBytes(isCompressed) {\n return this.toBytes(isCompressed);\n }\n}\n/** Generator / base point */\nconst G = new Point(Gx, Gy, 1n);\n/** Identity / zero point */\nconst I = new Point(0n, 1n, 0n);\n// Static aliases\nPoint.BASE = G;\nPoint.ZERO = I;\n/** `Q = u1⋅G + u2⋅R`. Verifies Q is not ZERO. Unsafe: non-CT. */\nconst doubleScalarMulUns = (R, u1, u2) => {\n return G.multiply(u1, false).add(R.multiply(u2, false)).assertValidity();\n};\nconst bytesToNumBE = (b) => big('0x' + (bytesToHex(b) || '0'));\nconst sliceBytesNumBE = (b, from, to) => bytesToNumBE(b.subarray(from, to));\nconst B256 = 2n ** 256n; // secp256k1 is weierstrass curve. Equation is x³ + ax + b.\n/** Number to 32b. Must be 0 <= num < B256. validate, pad, to bytes. */\nconst numTo32b = (num) => hexToBytes(padh(arange(num, 0n, B256), L2));\n/** Normalize private key to scalar (bigint). Verifies scalar is in range 1<s<N */\nconst toPrivScalar = (pr) => {\n const num = isBig(pr) ? pr : bytesToNumBE(toU8(pr, L));\n return arange(num, 1n, N, 'private key invalid 3');\n};\n/** For Signature malleability, validates sig.s is bigger than N/2. */\nconst highS = (n) => n > N >> 1n;\n/** Creates 33/65-byte public key from 32-byte private key. */\nconst getPublicKey = (privKey, isCompressed = true) => {\n return G.multiply(toPrivScalar(privKey)).toBytes(isCompressed);\n};\n/** ECDSA Signature class. Supports only compact 64-byte representation, not DER. */\nclass Signature {\n r;\n s;\n recovery;\n constructor(r, s, recovery) {\n this.r = agroup(r); // 1 <= r < N\n this.s = agroup(s); // 1 <= s < N\n if (recovery != null)\n this.recovery = recovery;\n Object.freeze(this);\n }\n /** Create signature from 64b compact (r || s) representation. */\n static fromBytes(b) {\n abytes(b, L2);\n const r = sliceBytesNumBE(b, 0, L);\n const s = sliceBytesNumBE(b, L, L2);\n return new Signature(r, s);\n }\n toBytes() {\n const { r, s } = this;\n return concatBytes(numTo32b(r), numTo32b(s));\n }\n /** Copy signature, with newly added recovery bit. */\n addRecoveryBit(bit) {\n return new Signature(this.r, this.s, bit);\n }\n hasHighS() {\n return highS(this.s);\n }\n toCompactRawBytes() {\n return this.toBytes();\n }\n toCompactHex() {\n return bytesToHex(this.toBytes());\n }\n recoverPublicKey(msg) {\n return recoverPublicKey(this, msg);\n }\n static fromCompact(hex) {\n return Signature.fromBytes(toU8(hex, L2));\n }\n assertValidity() {\n return this;\n }\n normalizeS() {\n const { r, s, recovery } = this;\n return highS(s) ? new Signature(r, modN(-s), recovery) : this;\n }\n}\n/**\n * RFC6979: ensure ECDSA msg is X bytes, convert to BigInt.\n * RFC suggests optional truncating via bits2octets.\n * FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits,\n * which matches bits2int. bits2int can produce res>N.\n */\nconst bits2int = (bytes) => {\n const delta = bytes.length * 8 - 256;\n if (delta > 1024)\n err('msg invalid'); // our CUSTOM check, \"just-in-case\": prohibit long inputs\n const num = bytesToNumBE(bytes);\n return delta > 0 ? num >> big(delta) : num;\n};\n/** int2octets can't be used; pads small msgs with 0: BAD for truncation as per RFC vectors */\nconst bits2int_modN = (bytes) => modN(bits2int(abytes(bytes)));\nconst signOpts = { lowS: true };\nconst veriOpts = { lowS: true };\n// RFC6979 signature generation, preparation step.\nconst prepSig = (msgh, priv, opts = signOpts) => {\n if (['der', 'recovered', 'canonical'].some((k) => k in opts))\n // legacy opts\n err('option not supported');\n let { lowS, extraEntropy } = opts; // generates low-s sigs by default\n if (lowS == null)\n lowS = true; // RFC6979 3.2: we skip step A\n const i2o = numTo32b; // int to octets\n const h1i = bits2int_modN(toU8(msgh)); // msg bigint\n const h1o = i2o(h1i); // msg octets\n const d = toPrivScalar(priv); // validate private key, convert to bigint\n const seed = [i2o(d), h1o]; // Step D of RFC6979 3.2\n /** RFC6979 3.6: additional k' (optional). See {@link ExtraEntropy}. */\n // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n if (extraEntropy)\n seed.push(extraEntropy === true ? randomBytes(L) : toU8(extraEntropy));\n const m = h1i; // convert msg to bigint\n // Converts signature params into point w r/s, checks result for validity.\n // To transform k => Signature:\n // q = k⋅G\n // r = q.x mod n\n // s = k^-1(m + rd) mod n\n const k2sig = (kBytes) => {\n // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n // Important: all mod() calls here must be done over N\n const k = bits2int(kBytes);\n if (!(1n <= k && k < N))\n return; // Check 0 < k < CURVE.n\n const q = G.multiply(k).toAffine(); // q = k⋅G\n const r = modN(q.x); // r = q.x mod n\n if (r === 0n)\n return;\n const ik = invert(k, N); // k^-1 mod n, NOT mod P\n const s = modN(ik * modN(m + modN(d * r))); // s = k^-1(m + rd) mod n\n if (s === 0n)\n return;\n let normS = s; // normalized S\n let recovery = (q.x === r ? 0 : 2) | Number(q.y & 1n); // recovery bit (2 or 3, when q.x > n)\n if (lowS && highS(s)) {\n // if lowS was passed, ensure s is always\n normS = modN(-s); // in the bottom half of CURVE.n\n recovery ^= 1;\n }\n return new Signature(r, normS, recovery); // use normS, not s\n };\n return { seed: concatBytes(...seed), k2sig };\n};\n// HMAC-DRBG from NIST 800-90. Minimal, non-full-spec - used for RFC6979 signatures.\nconst hmacDrbg = (asynchronous) => {\n let v = u8n(L); // Steps B, C of RFC6979 3.2: set hashLen\n let k = u8n(L); // In our case, it's always equal to L\n let i = 0; // Iterations counter, will throw when over max\n const NULL = u8n(0);\n const reset = () => {\n v.fill(1);\n k.fill(0);\n i = 0;\n };\n const max = 1000;\n const _e = 'drbg: tried 1000 values';\n if (asynchronous) {\n // asynchronous=true\n // h = hmac(K || V || ...)\n const h = (...b) => etc.hmacSha256Async(k, v, ...b);\n const reseed = async (seed = NULL) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = await h(u8of(0x00), seed); // k = hmac(K || V || 0x00 || seed)\n v = await h(); // v = hmac(K || V)\n if (seed.length === 0)\n return;\n k = await h(u8of(0x01), seed); // k = hmac(K || V || 0x01 || seed)\n v = await h(); // v = hmac(K || V)\n };\n // HMAC-DRBG generate() function\n const gen = async () => {\n if (i++ >= max)\n err(_e);\n v = await h(); // v = hmac(K || V)\n return v; // this diverges from noble-curves: we don't allow arbitrary output len!\n };\n // Do not reuse returned fn for more than 1 sig:\n // 1) it's slower (JIT screws up). 2. unsafe (async race conditions)\n return async (seed, pred) => {\n reset();\n await reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(await gen())))\n await reseed(); // test predicate until it returns ok\n reset();\n return res;\n };\n }\n else {\n // asynchronous=false; same as above, but synchronous\n // h = hmac(K || V || ...)\n const h = (...b) => callHash('hmacSha256Sync')(k, v, ...b);\n const reseed = (seed = NULL) => {\n // HMAC-DRBG reseed() function. Steps D-G\n k = h(u8of(0x00), seed); // k = hmac(k || v || 0x00 || seed)\n v = h(); // v = hmac(k || v)\n if (seed.length === 0)\n return;\n k = h(u8of(0x01), seed); // k = hmac(k || v || 0x01 || seed)\n v = h(); // v = hmac(k || v)\n };\n // HMAC-DRBG generate() function\n const gen = () => {\n if (i++ >= max)\n err(_e);\n v = h(); // v = hmac(k || v)\n return v; // this diverges from noble-curves: we don't allow arbitrary output len!\n };\n // Do not reuse returned fn for more than 1 sig:\n // 1) it's slower (JIT screws up). 2. unsafe (async race conditions)\n return (seed, pred) => {\n reset();\n reseed(seed); // Steps D-G\n let res = undefined; // Step H: grind until k is in [1..n-1]\n while (!(res = pred(gen())))\n reseed(); // test predicate until it returns ok\n reset();\n return res;\n };\n }\n};\n/**\n * Sign a msg hash using secp256k1. Async.\n * Follows [SEC1](https://secg.org/sec1-v2.pdf) 4.1.2 & RFC6979.\n * It's suggested to enable hedging ({@link ExtraEntropy}) to prevent fault attacks.\n * @param msgh - message HASH, not message itself e.g. sha256(message)\n * @param priv - private key\n * @param opts - `lowS: true` prevents malleability, `extraEntropy: true` enables hedging\n */\nconst signAsync = async (msgh, priv, opts = signOpts) => {\n // Re-run drbg until k2sig returns ok\n const { seed, k2sig } = prepSig(msgh, priv, opts);\n const sig = await hmacDrbg(true)(seed, k2sig);\n return sig;\n};\n/**\n * Sign a msg hash using secp256k1.\n * Follows [SEC1](https://secg.org/sec1-v2.pdf) 4.1.2 & RFC6979.\n * It's suggested to enable hedging ({@link ExtraEntropy}) to prevent fault attacks.\n * @param msgh - message HASH, not message itself e.g. sha256(message)\n * @param priv - private key\n * @param opts - `lowS: true` prevents malleability, `extraEntropy: true` enables hedging\n * @example\n * const sig = sign(sha256('hello'), privKey, { extraEntropy: true }).toBytes();\n */\nconst sign = (msgh, priv, opts = signOpts) => {\n // Re-run drbg until k2sig returns ok\n const { seed, k2sig } = prepSig(msgh, priv, opts);\n const sig = hmacDrbg(false)(seed, k2sig);\n return sig;\n};\n/**\n * Verify a signature using secp256k1.\n * Follows [SEC1](https://secg.org/sec1-v2.pdf) 4.1.4.\n * Default lowS=true, prevents malleability.\n * @param sig - signature, 64-byte or Signature instance\n * @param msgh - message HASH, not message itself e.g. sha256(message)\n * @param pub - public key\n * @param opts - { lowS: true } is default, prohibits s >= CURVE.n/2 to prevent malleability\n */\nconst verify = (sig, msgh, pub, opts = veriOpts) => {\n let { lowS } = opts;\n if (lowS == null)\n lowS = true;\n if ('strict' in opts)\n err('option not supported');\n let sigg;\n // Previous ver supported DER sigs.\n // We throw error when DER is suspected now.\n const rs = sig && typeof sig === 'object' && 'r' in sig;\n if (!rs && toU8(sig).length !== L2)\n err('signature must be 64 bytes');\n try {\n sigg = rs ? new Signature(sig.r, sig.s) : Signature.fromCompact(sig);\n const h = bits2int_modN(toU8(msgh)); // Truncate hash\n const P = Point.fromBytes(toU8(pub)); // Validate public key\n const { r, s } = sigg;\n if (lowS && highS(s))\n return false; // lowS bans sig.s >= CURVE.n/2\n const is = invert(s, N); // s^-1\n const u1 = modN(h * is); // u1 = hs^-1 mod n\n const u2 = modN(r * is); // u2 = rs^-1 mod n\n const R = doubleScalarMulUns(P, u1, u2).toAffine(); // R = u1⋅G + u2⋅P\n // Stop if R is identity / zero point. Check is done inside `doubleScalarMulUns`\n const v = modN(R.x); // R.x must be in N's field, not P's\n return v === r; // mod(R.x, n) == r\n }\n catch (error) {\n return false;\n }\n};\n/**\n * ECDSA public key recovery. Requires msg hash and recovery id.\n * Follows [SEC1](https://secg.org/sec1-v2.pdf) 4.1.6.\n */\nconst recoverPublicKey = (sig, msgh) => {\n const { r, s, recovery } = sig;\n // 0 or 1 recovery id determines sign of \"y\" coordinate.\n // 2 or 3 means q.x was >N.\n if (![0, 1, 2, 3].includes(recovery))\n err('recovery id invalid');\n const h = bits2int_modN(toU8(msgh, L)); // Truncate hash\n const radj = recovery === 2 || recovery === 3 ? r + N : r;\n afield(radj); // ensure q.x is still a field element\n const head = getPrefix(big(recovery)); // head is 0x02 or 0x03\n const Rb = concatBytes(head, numTo32b(radj)); // concat head + r\n const R = Point.fromBytes(Rb);\n const ir = invert(radj, N); // r^-1\n const u1 = modN(-h * ir); // -hr^-1\n const u2 = modN(s * ir); // sr^-1\n return doubleScalarMulUns(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n};\n/**\n * Elliptic Curve Diffie-Hellman (ECDH) on secp256k1.\n * Result is **NOT hashed**. Use hash or KDF on it if you need.\n * @param privA private key A\n * @param pubB public key B\n * @param isCompressed 33-byte (true) or 65-byte (false) output\n * @returns public key C\n */\nconst getSharedSecret = (privA, pubB, isCompressed = true) => {\n return Point.fromBytes(toU8(pubB)).multiply(toPrivScalar(privA)).toBytes(isCompressed);\n};\n// FIPS 186 B.4.1 compliant key generation produces private keys with modulo bias being neglible.\n// takes >N+8 bytes, returns (hash mod n-1)+1\nconst hashToPrivateKey = (hash) => {\n hash = toU8(hash);\n if (hash.length < L + 8 || hash.length > 1024)\n err('expected 40-1024b');\n const num = M(bytesToNumBE(hash), N - 1n);\n return numTo32b(num + 1n);\n};\nconst randomPrivateKey = () => hashToPrivateKey(randomBytes(L + 16)); // FIPS 186 B.4.1.\nconst _sha = 'SHA-256';\n/** Math, hex, byte helpers. Not in `utils` because utils share API with noble-curves. */\nconst etc = {\n hexToBytes: hexToBytes,\n bytesToHex: bytesToHex,\n concatBytes: concatBytes,\n bytesToNumberBE: bytesToNumBE,\n numberToBytesBE: numTo32b,\n mod: M,\n invert: invert, // math utilities\n hmacSha256Async: async (key, ...msgs) => {\n const s = subtle();\n const name = 'HMAC';\n const k = await s.importKey('raw', key, { name, hash: { name: _sha } }, false, ['sign']);\n return u8n(await s.sign(name, k, concatBytes(...msgs)));\n },\n hmacSha256Sync: undefined, // For TypeScript. Actual logic is below\n hashToPrivateKey: hashToPrivateKey,\n randomBytes: randomBytes,\n};\n/** Curve-specific utilities for private keys. */\nconst utils = {\n normPrivateKeyToScalar: toPrivScalar,\n isValidPrivateKey: (key) => {\n try {\n return !!toPrivScalar(key);\n }\n catch (e) {\n return false;\n }\n },\n randomPrivateKey: randomPrivateKey,\n precompute: (w = 8, p = G) => {\n p.multiply(3n);\n w;\n return p;\n },\n};\n// ## Precomputes\n// --------------\nconst W = 8; // W is window size\nconst scalarBits = 256;\nconst pwindows = Math.ceil(scalarBits / W) + 1; // 33 for W=8\nconst pwindowSize = 2 ** (W - 1); // 128 for W=8\nconst precompute = () => {\n const points = [];\n let p = G;\n let b = p;\n for (let w = 0; w < pwindows; w++) {\n b = p;\n points.push(b);\n for (let i = 1; i < pwindowSize; i++) {\n b = b.add(p);\n points.push(b);\n } // i=1, bc we skip 0\n p = b.double();\n }\n return points;\n};\nlet Gpows = undefined; // precomputes for base point G\n// const-time negate\nconst ctneg = (cnd, p) => {\n const n = p.negate();\n return cnd ? n : p;\n};\n/**\n * Precomputes give 12x faster getPublicKey(), 10x sign(), 2x verify() by\n * caching multiples of G (base point). Cache is stored in 32MB of RAM.\n * Any time `G.multiply` is done, precomputes are used.\n * Not used for getSharedSecret, which instead multiplies random pubkey `P.multiply`.\n *\n * w-ary non-adjacent form (wNAF) precomputation method is 10% slower than windowed method,\n * but takes 2x less RAM. RAM reduction is possible by utilizing `.subtract`.\n *\n * !! Precomputes can be disabled by commenting-out call of the wNAF() inside Point#multiply().\n */\nconst wNAF = (n) => {\n const comp = Gpows || (Gpows = precompute());\n let p = I;\n let f = G; // f must be G, or could become I in the end\n const pow_2_w = 2 ** W; // 256 for W=8\n const maxNum = pow_2_w; // 256 for W=8\n const mask = big(pow_2_w - 1); // 255 for W=8 == mask 0b11111111\n const shiftBy = big(W); // 8 for W=8\n for (let w = 0; w < pwindows; w++) {\n let wbits = Number(n & mask); // extract W bits.\n n >>= shiftBy; // shift number by W bits.\n if (wbits > pwindowSize) {\n wbits -= maxNum;\n n += 1n;\n } // split if bits > max: +224 => 256-32\n const off = w * pwindowSize;\n const offF = off; // offsets, evaluate both\n const offP = off + Math.abs(wbits) - 1;\n const isEven = w % 2 !== 0; // conditions, evaluate both\n const isNeg = wbits < 0;\n if (wbits === 0) {\n // off == I: can't add it. Adding random offF instead.\n f = f.add(ctneg(isEven, comp[offF])); // bits are 0: add garbage to fake point\n }\n else {\n p = p.add(ctneg(isNeg, comp[offP])); // bits are 1: add to result point\n }\n }\n return { p, f }; // return both real and fake points for JIT\n};\n// !! Remove the export below to easily use in REPL / browser console\nexport { secp256k1_CURVE as CURVE, etc, getPublicKey, getSharedSecret, Point, Point as ProjectivePoint, sign, signAsync, Signature, utils, verify, };\n","// src/encryption.ts\nimport { gcm } from \"@noble/ciphers/aes\";\nimport { utf8ToBytes } from \"@noble/ciphers/utils\";\nimport { getPublicKey, utils, getSharedSecret as getSharedSecretNoble } from \"@noble/secp256k1\";\nimport { sha256 } from \"@noble/hashes/sha2\";\nasync function sha256Truncate(topic) {\n const encoder = new TextEncoder();\n const data = encoder.encode(topic);\n const hashBuffer = await sha256(data);\n const fullHashArray = new Uint8Array(hashBuffer);\n const truncatedHashArray = fullHashArray.slice(0, 12);\n return truncatedHashArray;\n}\nfunction generateECDHKeyPair() {\n const privKey = utils.randomPrivateKey();\n const pubKey = getPublicKey(privKey);\n return { privateKey: privKey, publicKey: pubKey };\n}\nfunction getSharedSecret(privateKey, publicKey) {\n const sharedSecret = getSharedSecretNoble(privateKey, publicKey);\n return sharedSecret.slice(0, 32);\n}\nasync function encrypt(message, sharedSecret, nonce) {\n const nonceBytes = await sha256Truncate(nonce);\n const aes = gcm(sharedSecret, nonceBytes);\n const data = utf8ToBytes(message);\n const ciphertext = aes.encrypt(data);\n return ciphertext;\n}\nasync function decrypt(ciphertext, sharedSecret, nonce) {\n const nonceBytes = await sha256Truncate(nonce);\n const aes = gcm(sharedSecret, nonceBytes);\n const data = aes.decrypt(ciphertext);\n const dataString = new TextDecoder().decode(data);\n return dataString;\n}\n\nexport {\n generateECDHKeyPair,\n getSharedSecret,\n encrypt,\n decrypt\n};\n","import {\n generateRandomId\n} from \"./chunk-JAX7ZIAG.js\";\nimport {\n encrypt\n} from \"./chunk-TY3J7RCK.js\";\n\n// src/json-rpc.ts\nimport debug from \"debug\";\nimport { deflate } from \"pako\";\nvar log = debug(\"bridge\");\nvar MAX_PAYLOAD_SIZE = 32 * 1024;\nvar CHUNK_SIZE = 1024 * 16;\nvar CHUNK_WAIT = 1;\nfunction createJsonRpcRequest(method, params) {\n const id = generateRandomId(16);\n return { jsonrpc: \"2.0\", id, method, params };\n}\nasync function createEncryptedJsonRpcRequest(method, params, sharedSecret, nonce) {\n const message = JSON.stringify({ method, params: params || {} });\n const compressed = deflate(message);\n const messageToEncrypt = JSON.stringify({ data: Buffer.from(compressed).toString(\"base64\") });\n log(`Compressed message from ${message.length} bytes to ${messageToEncrypt.length} bytes`);\n const encryptedMessage = await encrypt(messageToEncrypt, sharedSecret, nonce);\n return createJsonRpcRequest(\"encryptedMessage\", { payload: Buffer.from(encryptedMessage).toString(\"base64\") });\n}\nasync function getEncryptedJsonPayload(method, params, sharedSecret, nonce) {\n const chunks = [];\n const messageIds = [];\n if (params) {\n const compressed = Buffer.from(deflate(JSON.stringify(params))).toString(\"base64\");\n const numChunks = Math.ceil(compressed.length / CHUNK_SIZE);\n const id = generateRandomId(16);\n for (let i = 0; i < numChunks; i++) {\n const startIndex = i * CHUNK_SIZE;\n const endIndex = Math.min(startIndex + CHUNK_SIZE, compressed.length);\n const chunk = compressed.slice(startIndex, endIndex);\n const messageToEncrypt = JSON.stringify({ method, params: chunk, chunk: { id, index: i, length: numChunks } });\n const encryptedMessage = await encrypt(messageToEncrypt, sharedSecret, nonce);\n const request = createJsonRpcRequest(\"encryptedMessage\", {\n payload: Buffer.from(encryptedMessage).toString(\"base64\")\n });\n messageIds.push(request.id);\n chunks.push(JSON.stringify(request));\n }\n } else {\n const message = JSON.stringify({ method, params: params || {} });\n const encryptedMessage = await encrypt(message, sharedSecret, nonce);\n const request = createJsonRpcRequest(\"encryptedMessage\", {\n payload: Buffer.from(encryptedMessage).toString(\"base64\")\n });\n messageIds.push(request.id);\n chunks.push(JSON.stringify(request));\n }\n return { chunks, messageIds };\n}\nasync function sendEncryptedJsonRpcRequest(method, params, sharedSecret, nonce, websocket) {\n try {\n const { chunks, messageIds } = await getEncryptedJsonPayload(method, params, sharedSecret, nonce);\n for (const payloadChunk of chunks) {\n if (payloadChunk.length > MAX_PAYLOAD_SIZE) {\n throw new Error(`Payload exceeds max size of ${MAX_PAYLOAD_SIZE} bytes`);\n }\n websocket.send(payloadChunk);\n if (chunks.length > 1) await new Promise((resolve) => setTimeout(resolve, CHUNK_WAIT));\n }\n return { success: true, messageIds };\n } catch (error) {\n log(\"Error sending encrypted message:\", error);\n return { success: false, messageIds: [] };\n }\n}\nfunction createJsonRpcResponse(id, result) {\n return { jsonrpc: \"2.0\", id, result };\n}\n\nexport {\n createJsonRpcRequest,\n createEncryptedJsonRpcRequest,\n getEncryptedJsonPayload,\n sendEncryptedJsonRpcRequest,\n createJsonRpcResponse\n};\n","// src/types.ts\nvar BridgeEventType = /* @__PURE__ */ ((BridgeEventType2) => {\n BridgeEventType2[\"Connected\"] = \"connected\";\n BridgeEventType2[\"SecureChannelEstablished\"] = \"secure-channel-established\";\n BridgeEventType2[\"RawMessageReceived\"] = \"raw-message-received\";\n BridgeEventType2[\"MessageReceived\"] = \"message-received\";\n BridgeEventType2[\"ChunkRecieved\"] = \"chunk-received\";\n BridgeEventType2[\"Error\"] = \"error\";\n BridgeEventType2[\"FailedToConnect\"] = \"failed-to-connect\";\n BridgeEventType2[\"Disconnected\"] = \"disconnected\";\n return BridgeEventType2;\n})(BridgeEventType || {});\nvar FailedToConnectEvent = class {\n code;\n reason;\n event;\n constructor(options) {\n this.code = options.code;\n this.reason = options.reason;\n this.event = options.event;\n }\n};\nvar BridgeDisconnectedEvent = class {\n code;\n reason;\n wasConnected;\n wasIntentionalClose;\n willReconnect;\n event;\n constructor(options) {\n this.code = options.code;\n this.reason = options.reason;\n this.wasConnected = options.wasConnected;\n this.wasIntentionalClose = options.wasIntentionalClose;\n this.willReconnect = options.willReconnect;\n this.event = options.event;\n }\n};\n\nexport {\n BridgeEventType,\n FailedToConnectEvent,\n BridgeDisconnectedEvent\n};\n","import {\n getWebSocketClient\n} from \"./chunk-R44HA7IS.js\";\nimport {\n DEFAULT_MAX_RECONNECT_ATTEMPTS,\n DEFAULT_PING_INTERVAL,\n DEFAULT_WS_ENDPOINT,\n PROTOCOL_VERSION\n} from \"./chunk-JJR3XGA6.js\";\nimport {\n sendEncryptedJsonRpcRequest\n} from \"./chunk-YUWWFTWM.js\";\nimport {\n generateRandomId,\n parseOriginHeader\n} from \"./chunk-JAX7ZIAG.js\";\nimport {\n decrypt,\n encrypt,\n getSharedSecret\n} from \"./chunk-TY3J7RCK.js\";\nimport {\n BridgeDisconnectedEvent,\n FailedToConnectEvent\n} from \"./chunk-STQR6A4U.js\";\n\n// src/bridge-connection.ts\nimport debug from \"debug\";\nimport { inflate } from \"pako\";\nimport { bytesToHex } from \"@noble/ciphers/utils\";\nvar BridgeConnection = class {\n log;\n role;\n origin;\n _bridgeOrigin;\n bridgeId;\n keyPair;\n remotePublicKey;\n sharedSecret;\n websocket;\n secureChannelEstablished = false;\n intentionalClose = false;\n keepalive;\n reconnect;\n reconnectAttempts = 0;\n maxReconnectAttempts;\n reconnectTimer;\n pingTimer;\n pingInterval = 3e4;\n isReconnecting = false;\n isConnected = false;\n resumedSession = false;\n bridgeUrl;\n validMessagesReceived = 0;\n lastMessageTimestamp = 0;\n // Event handlers\n eventListeners;\n // Map to store incomplete messages\n incompleteMessages = /* @__PURE__ */ new Map();\n // Set to track seen JSON RPC message IDs (both sent and received)\n seenMessageIds = /* @__PURE__ */ new Set();\n /**\n * Create a new bridge connection\n * @param options Connection options\n */\n constructor(options) {\n this.role = options.role;\n this.origin = options.origin;\n this._bridgeOrigin = options.domain;\n this.log = debug(`bridge:${this.role}`);\n this.bridgeId = options.bridgeId || generateRandomId(16);\n this.keyPair = options.keyPair;\n this.reconnect = options.reconnect ?? true;\n this.keepalive = options.keepalive ?? true;\n this.maxReconnectAttempts = options.reconnectAttempts || DEFAULT_MAX_RECONNECT_ATTEMPTS;\n this.pingInterval = options.pingInterval || DEFAULT_PING_INTERVAL;\n this.bridgeUrl = options.bridgeUrl ?? DEFAULT_WS_ENDPOINT;\n this.eventListeners = {\n [\"connected\" /* Connected */]: [],\n [\"secure-channel-established\" /* SecureChannelEstablished */]: [],\n [\"raw-message-received\" /* RawMessageReceived */]: [],\n [\"message-received\" /* MessageReceived */]: [],\n [\"chunk-received\" /* ChunkRecieved */]: [],\n [\"error\" /* Error */]: [],\n [\"failed-to-connect\" /* FailedToConnect */]: [],\n [\"disconnected\" /* Disconnected */]: []\n };\n }\n resume() {\n this.log(\"Resuming bridge session\");\n this.secureChannelEstablished = true;\n this.resumedSession = true;\n }\n /**\n * Add an event listener\n * @param event The event type\n * @param callback The callback function\n * @returns Function to remove the event listener\n */\n on(event, callback) {\n this.eventListeners[event].push(callback);\n return () => this.off(event, callback);\n }\n /**\n * Remove an event listener\n * @param event The event type\n * @param callback The callback function\n */\n off(event, callback) {\n const index = this.eventListeners[event].indexOf(callback);\n if (index !== -1) {\n this.eventListeners[event].splice(index, 1);\n }\n }\n /**\n * Emit an event\n * @param event The event type\n * @param args The event arguments\n */\n async emit(event, ...args) {\n await Promise.all(\n this.eventListeners[event].map(async (listener) => {\n try {\n await listener(...args);\n } catch (error) {\n this.log(`Error in ${event} listener:`, error);\n }\n })\n );\n }\n /**\n * Set up WebSocket event handlers\n */\n setupWebSocketHandlers(websocket) {\n websocket.onopen = async () => {\n this.isConnected = true;\n if (this.pingTimer) clearInterval(this.pingTimer);\n this.pingTimer = setInterval(() => {\n if (this.websocket) this.websocket.send(JSON.stringify({ method: \"ping\", params: {}, nocache: true }));\n }, this.pingInterval);\n if (this.isReconnecting) {\n this.log(\"Reconnected to bridge\");\n this.resetReconnection();\n if (this.lastMessageTimestamp > 0 && this.websocket) {\n const replayTimestamp = this.lastMessageTimestamp - 1e3;\n this.log(`Requesting message replay starting from ${replayTimestamp}`);\n this.websocket.send(JSON.stringify({ method: \"replay\", params: { timestamp: replayTimestamp } }));\n }\n await this.emit(\"connected\" /* Connected */, true);\n } else {\n this.log(\"Connected to bridge\");\n if (this.lastMessageTimestamp === 0) this.lastMessageTimestamp = Date.now();\n await this.emit(\"connected\" /* Connected */, false);\n if (this.resumedSession) {\n this.log(\"Resumed session, emitting secure channel established event\");\n await this.emit(\"secure-channel-established\" /* SecureChannelEstablished */);\n }\n }\n };\n websocket.onmessage = async (event) => {\n await this.emit(\"raw-message-received\" /* RawMessageReceived */, event.data);\n try {\n const data = JSON.parse(event.data);\n await this.handleWebSocketMessage(data);\n } catch (error) {\n this.log(\"Error parsing message:\", error);\n await this.emit(\n \"error\" /* Error */,\n `Error parsing message: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n };\n websocket.onclose = async (event) => {\n const { code, reason, wasClean } = event;\n this.log(\"[websocket.onclose]\", { code, reason, wasClean, readyState: websocket.readyState });\n if (this.pingTimer) clearInterval(this.pingTimer);\n if (this.isConnected) {\n const disconnectedEvent = new BridgeDisconnectedEvent({\n code: event.code,\n reason: event.reason,\n wasConnected: this.isConnected,\n wasIntentionalClose: this.intentionalClose,\n willReconnect: !this.intentionalClose && this.isConnected && this.reconnect,\n event\n });\n await this.emit(\"disconnected\" /* Disconnected */, disconnectedEvent);\n }\n if (this.intentionalClose) {\n this.log(\"Intentional close, not attempting reconnect\");\n this._handleCleanup();\n return;\n }\n if (!this.isConnected) {\n const isConnectionError = !this.isConnected && !this.intentionalClose;\n if (isConnectionError) {\n const failedToConnectEvent = new FailedToConnectEvent({\n code: event.code,\n reason: event.reason,\n event\n });\n await this.emit(\"failed-to-connect\" /* FailedToConnect */, failedToConnectEvent);\n }\n return;\n }\n this.log(\"WebSocket closed\");\n this.isConnected = false;\n if (this.reconnect) await this.handleReconnect();\n };\n }\n /**\n * Handle WebSocket messages based on message type\n */\n async handleWebSocketMessage(data) {\n if (data.method === \"ping\") {\n this.log(\"Received ping message, responding with pong\");\n this.websocket?.send(JSON.stringify({ method: \"pong\", params: {}, nocache: true }));\n return;\n }\n if (data.method === \"pong\") return;\n if (!data.id) {\n this.log(\"Ignoring message with missing id:\", data);\n return;\n }\n if (this.seenMessageIds.has(data.id)) {\n this.log(\"Ignoring message with duplicate id:\", data.id);\n return;\n }\n this.seenMessageIds.add(data.id);\n this.validMessagesReceived += 1;\n this.lastMessageTimestamp = Date.now();\n if (this.role === \"creator\" && data.method === \"handshake\") {\n this.log(\"Processing handshake message\");\n await this.handleHandshake(data);\n }\n if (data.method === \"encryptedMessage\") {\n this.log(\"Processing encrypted message\");\n if (this.role === \"joiner\" && this._bridgeOrigin) {\n const parsedOrigin = data.origin ? parseOriginHeader(data.origin) : void 0;\n if (parsedOrigin !== this._bridgeOrigin) {\n this.log(\n `WARNING: Origin differs from origin in connection string. Expected ${this._bridgeOrigin} but got ${parsedOrigin}`\n );\n this.log(\"Ignoring received message:\", data);\n this.emit(\n \"error\" /* Error */,\n `Origin ${parsedOrigin} does not match expected origin ${this._bridgeOrigin}`\n );\n return;\n }\n }\n await this.handleEncryptedMessage(data);\n }\n }\n /**\n * Handle handshake message (for creator)\n */\n async handleHandshake(data) {\n this.log(\"Received handshake:\", data);\n try {\n const joinerPublicKey = new Uint8Array(Buffer.from(data.params.pubkey, \"hex\"));\n if (this.secureChannelEstablished) {\n if (this.remotePublicKey !== joinerPublicKey) {\n this.log(\"Secure channel already established, ignoring handshake\");\n this.emit(\"error\" /* Error */, \"Secure channel already established, ignoring handshake\");\n this.websocket?.send(\n JSON.stringify({\n method: \"error\",\n params: { message: \"Secure channel already established, ignoring handshake\" }\n })\n );\n return;\n }\n }\n this.remotePublicKey = joinerPublicKey;\n this.sharedSecret = getSharedSecret(this.keyPair.privateKey, joinerPublicKey);\n const greeting = await decrypt(Buffer.from(data.params.greeting, \"hex\"), this.sharedSecret, this.bridgeId);\n if (greeting !== \"hello\") throw new Error(\"Invalid greeting\");\n if (this.websocket) {\n const result = await sendEncryptedJsonRpcRequest(\n \"hello\",\n null,\n this.sharedSecret,\n this.bridgeId,\n this.websocket\n );\n result.messageIds.forEach((id) => this.seenMessageIds.add(id));\n }\n if (this.secureChannelEstablished) {\n this.log(\"Secure channel already established, sending handshake message again\");\n } else {\n this.secureChannelEstablished = true;\n await this.emit(\"secure-channel-established\" /* SecureChannelEstablished */);\n }\n } catch (error) {\n this.log(\"Error handling handshake:\", error);\n await this.emit(\n \"error\" /* Error */,\n `Error handling handshake: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n /**\n * Handle encrypted message\n */\n async handleEncryptedMessage(data) {\n try {\n if (!this.sharedSecret) throw new Error(\"Shared secret not available\");\n const payload = new Uint8Array(Buffer.from(data.params.payload, \"base64\"));\n const decrypted = await decrypt(payload, this.sharedSecret, this.bridgeId);\n const decryptedJson = JSON.parse(decrypted);\n if (!decryptedJson.chunk || decryptedJson.chunk.length == 1) {\n if (decryptedJson.method === \"hello\" && !this.secureChannelEstablished) {\n this.log(`Verified origin: ${data.origin}`);\n this.secureChannelEstablished = true;\n await this.emit(\"secure-channel-established\" /* SecureChannelEstablished */);\n } else {\n try {\n if (decryptedJson.params && decryptedJson.params.length > 0) {\n this.log(`Received compressed single-part message`);\n const compressedData = Buffer.from(decryptedJson.params, \"base64\");\n const decompressedData = inflate(compressedData);\n const decompressedText = new TextDecoder().decode(decompressedData);\n decryptedJson.params = JSON.parse(decompressedText);\n delete decryptedJson.chunk;\n }\n } catch (error) {\n if (error !== \"incorrect header check\") {\n console.error(\"Some error happened data:\", error);\n throw new Error(\"Failed to parse data: \");\n }\n this.log(`Received uncompressed single-part message`);\n try {\n decryptedJson.params = JSON.parse(decryptedJson.params);\n } catch {\n }\n }\n await this.emit(\"message-received\" /* MessageReceived */, decryptedJson);\n }\n } else {\n const { index, length, id } = decryptedJson.chunk;\n this.log(`Received chunk (${index + 1}/${length}) for chunk id ${id}`);\n if (!this.incompleteMessages.has(id)) {\n this.incompleteMessages.set(id, {\n chunks: new Array(length),\n // Pre-allocate array with correct length\n expectedChunks: length,\n timestamp: Date.now()\n });\n }\n const message = this.incompleteMessages.get(id);\n if (message.expectedChunks !== length) {\n this.log(`Chunk count mismatch for id ${id}. Expected ${message.expectedChunks}, got ${length}`);\n throw new Error(`Chunk count mismatch for id ${id}. Expected ${message.expectedChunks}, got ${length}`);\n }\n message.chunks[index] = decryptedJson.params;\n await this.emit(\"chunk-received\" /* ChunkRecieved */, decryptedJson.chunk);\n const allChunksReceived = (() => {\n for (let i = 0; i < message.chunks.length; i++) {\n if (message.chunks[i] === void 0) {\n return false;\n }\n }\n return true;\n })();\n if (allChunksReceived) {\n const fullMessage = message.chunks.join(\"\");\n const compressedMessage = Buffer.from(fullMessage, \"base64\");\n const decompressedData = inflate(compressedMessage);\n const decompressedText = new TextDecoder().decode(decompressedData);\n const decryptedPayload = JSON.parse(decompressedText);\n this.log(`Received all chunks for chunk id ${id}, reconstructing message`);\n const returnValue = { method: decryptedJson.method, params: decryptedPayload };\n this.incompleteMessages.delete(id);\n await this.emit(\"message-received\" /* MessageReceived */, returnValue);\n }\n }\n } catch (error) {\n this.log(\"Error decrypting message:\", error);\n await this.emit(\n \"error\" /* Error */,\n `Error decrypting message: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n /**\n * Handle reconnection logic\n */\n async handleReconnect() {\n this.reconnectAttempts++;\n if (this.reconnectAttempts > this.maxReconnectAttempts) {\n this.log(`WebSocket disconnected, max reconnection attempts (${this.maxReconnectAttempts}) reached`);\n this.resetReconnection();\n return;\n }\n this.isReconnecting = true;\n this.log(`WebSocket disconnected, attempting reconnect ${this.reconnectAttempts}/${this.maxReconnectAttempts}`);\n let reconnectIn = 0;\n if (this.reconnectAttempts > 1) {\n reconnectIn = 1e3 * Math.pow(2, this.reconnectAttempts - 2);\n this.log(`Waiting ${reconnectIn}ms before reconnecting...`);\n }\n this.reconnectTimer = setTimeout(async () => {\n try {\n const reconnectionUrl = await this._getWsConnectionUrl();\n this.websocket = await (this.origin ? getWebSocketClient(reconnectionUrl, this.origin) : getWebSocketClient(reconnectionUrl));\n this.setupWebSocketHandlers(this.websocket);\n } catch (error) {\n this.log(\"Reconnection failed:\", error);\n await this.handleReconnect();\n }\n }, reconnectIn);\n }\n /**\n * Reset reconnection state\n */\n resetReconnection() {\n this.log(\"Resetting reconnection state\");\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = void 0;\n }\n this.reconnectAttempts = 0;\n this.isReconnecting = false;\n }\n /**\n * Check if the bridge is connected\n */\n isBridgeConnected() {\n if (!this.websocket) {\n return false;\n }\n return this.websocket.readyState === WebSocket.OPEN;\n }\n /**\n * Check if the secure channel is established\n */\n isSecureChannelEstablished() {\n return this.secureChannelEstablished;\n }\n /**\n * Send a secure message\n * @param method The message method name\n * @param params The message parameters\n */\n async sendSecureMessage(method, params = {}) {\n if (!this.isConnected || !this.secureChannelEstablished) {\n await this.emit(\"error\" /* Error */, \"Cannot send message: Secure channel not established\");\n return false;\n }\n const result = await sendEncryptedJsonRpcRequest(\n method,\n params,\n this.sharedSecret,\n // TODO: Make the nonce the JSON id of the outer message\n this.bridgeId,\n this.websocket\n );\n result.messageIds.forEach((id) => this.seenMessageIds.add(id));\n return result.success;\n }\n /**\n * Register a callback for when the bridge connects\n * @returns Function to unsubscribe from the event\n */\n onConnect(callback) {\n return this.on(\"connected\" /* Connected */, callback);\n }\n /**\n * Register a callback for when the secure channel is established\n * @returns Function to unsubscribe from the event\n */\n onSecureChannelEstablished(callback) {\n return this.on(\"secure-channel-established\" /* SecureChannelEstablished */, callback);\n }\n /**\n * Register a callback for when a raw message is received\n * @returns Function to unsubscribe from the event\n */\n onRawMessage(callback) {\n return this.on(\"raw-message-received\" /* RawMessageReceived */, callback);\n }\n /**\n * Register a callback for when a message is received\n * @returns Function to unsubscribe from the event\n */\n onSecureMessage(callback) {\n return this.on(\"message-received\" /* MessageReceived */, callback);\n }\n /**\n * Register a callback for when an error occurs\n * @returns Function to unsubscribe from the event\n */\n onError(callback) {\n return this.on(\"error\" /* Error */, callback);\n }\n /**\n * Register a callback for when the bridge fails to connect\n * @returns Function to unsubscribe from the event\n */\n onFailedToConnect(callback) {\n return this.on(\"failed-to-connect\" /* FailedToConnect */, (event) => callback(event));\n }\n /**\n * Register a callback for when the bridge disconnects\n * @returns Function to unsubscribe from the event\n */\n onDisconnect(callback) {\n return this.on(\"disconnected\" /* Disconnected */, (event) => callback(event));\n }\n /**\n * Set the remote public key\n */\n setRemotePublicKey(publicKey) {\n this.remotePublicKey = publicKey;\n }\n /**\n * Compute the shared secret\n */\n computeSharedSecret() {\n if (!this.remotePublicKey) {\n throw new Error(\"Remote public key not set\");\n }\n this.sharedSecret = getSharedSecret(this.keyPair.privateKey, this.remotePublicKey);\n }\n /**\n * Create an encrypted greeting\n */\n async createEncryptedGreeting() {\n if (!this.sharedSecret) throw new Error(\"Shared secret not available\");\n const greeting = await encrypt(\"hello\", this.sharedSecret, this.bridgeId);\n return Buffer.from(greeting).toString(\"hex\");\n }\n /**\n * Get the WebSocket connection URL for a joiner\n * NOTE: If the `moc` (message on connect) param is provided in the WS connection URI,\n * the bridge server will automatically base64 decode and broadcast it to the bridge on connect\n * @returns The WebSocket connection URL\n */\n async _getWsConnectionUrl() {\n if (this.role === \"creator\") {\n return `${this.bridgeUrl}?id=${this.getBridgeId()}&v=${PROTOCOL_VERSION}`;\n } else {\n if (!this.isSecureChannelEstablished()) {\n const greeting = await this.createEncryptedGreeting();\n const handshakeMessage = JSON.stringify({\n jsonrpc: \"2.0\",\n id: generateRandomId(16),\n method: \"handshake\",\n params: { pubkey: this.getPublicKey(), greeting }\n });\n const moc = Buffer.from(handshakeMessage).toString(\"base64\");\n return `${this.bridgeUrl}?id=${this.getBridgeId()}&v=${PROTOCOL_VERSION}&moc=${encodeURIComponent(moc)}`;\n } else {\n return `${this.bridgeUrl}?id=${this.getBridgeId()}&v=${PROTOCOL_VERSION}`;\n }\n }\n }\n /**\n * Get the public key as a hex string\n */\n getPublicKey() {\n return bytesToHex(this.keyPair.publicKey);\n }\n /**\n * Get the remote public key as a hex string\n */\n getRemotePublicKey() {\n if (!this.remotePublicKey) {\n throw new Error(\"Remote public key not set\");\n }\n return bytesToHex(this.remotePublicKey);\n }\n /**\n * Get the bridge ID\n */\n getBridgeId() {\n return this.bridgeId;\n }\n /**\n * Get the WebSocket client\n */\n getWebSocket() {\n return this.websocket;\n }\n /**\n * Get the bridge origin (the origin of the creator)\n */\n get bridgeOrigin() {\n if (this.role === \"creator\") return this.origin;\n else return this._bridgeOrigin;\n }\n /**\n * Get a connection string URI for joining the bridge\n */\n get connectionString() {\n if (this.role === \"creator\") {\n return `obsidion:${this.getPublicKey()}?d=${this.bridgeOrigin}`;\n } else {\n return `obsidion:${this.getBridgeId()}?d=${this.bridgeOrigin}`;\n }\n }\n /**\n * Connect to the bridge service\n */\n async connect(url) {\n try {\n this.log(\"Connecting to bridge...\", url);\n const websocket = await (this.origin ? getWebSocketClient(url, this.origin) : getWebSocketClient(url));\n this.websocket = websocket;\n this.setupWebSocketHandlers(websocket);\n } catch (error) {\n this.log(\"Error connecting to bridge:\", error);\n await this.emit(\n \"error\" /* Error */,\n `Error connecting to bridge: ${error instanceof Error ? error.message : String(error)}`\n );\n throw error;\n }\n }\n _handleCleanup() {\n this.log(\"Cleaning up event listeners and associated state\");\n if (this.reconnectTimer) clearTimeout(this.reconnectTimer);\n this.reconnectTimer = void 0;\n if (this.pingTimer) clearInterval(this.pingTimer);\n this.pingTimer = void 0;\n if (this.websocket) {\n this.websocket.onopen = null;\n this.websocket.onmessage = null;\n this.websocket.onerror = null;\n this.websocket.onclose = null;\n this.websocket = void 0;\n }\n this.secureChannelEstablished = false;\n this.sharedSecret = void 0;\n this.remotePublicKey = void 0;\n this.eventListeners = {\n [\"connected\" /* Connected */]: [],\n [\"secure-channel-established\" /* SecureChannelEstablished */]: [],\n [\"raw-message-received\" /* RawMessageReceived */]: [],\n [\"message-received\" /* MessageReceived */]: [],\n [\"chunk-received\" /* ChunkRecieved */]: [],\n [\"error\" /* Error */]: [],\n [\"failed-to-connect\" /* FailedToConnect */]: [],\n [\"disconnected\" /* Disconnected */]: []\n };\n }\n /**\n * Close the bridge and cleanup all event listeners and associated state\n */\n cleanup() {\n this.log(\"Closing connection to bridge\");\n this.intentionalClose = true;\n this.websocket?.close(1e3, \"Connection closed by user\");\n }\n};\n\nexport {\n BridgeConnection\n};\n","import {\n BridgeConnection\n} from \"./chunk-HXQ2MEBI.js\";\nimport {\n generateECDHKeyPair\n} from \"./chunk-TY3J7RCK.js\";\n\n// src/bridge.ts\nimport { bytesToHex } from \"@noble/ciphers/utils\";\nimport debug from \"debug\";\nvar Bridge = class _Bridge {\n /**\n * Create a new bridge connection as the creator\n * @param options Options for creating a bridge\n * @returns A promise that resolves to a functional bridge interface\n */\n static async create(options = {}) {\n if (options.debug) debug.enable(\"bridge*\");\n const autoconnect = options.autoconnect ?? true;\n if (options.origin && typeof window !== \"undefined\") {\n throw new Error(\"Origin can't be specified when running in browser\");\n }\n if (!options.origin && typeof window === \"undefined\") {\n options.origin = \"nodejs\";\n }\n const origin = options.origin || window?.location?.protocol + \"//\" + window?.location?.hostname;\n if (options.remotePublicKey && !options.resume) {\n throw new Error(\"Can only provide remotePublicKey when resuming a bridge session\");\n }\n if (options.resume && (!options.keyPair || !options.remotePublicKey)) {\n throw new Error(\"Resuming a bridge session requires a keyPair and remotePublicKey\");\n }\n const keyPair = options.keyPair || generateECDHKeyPair();\n const bridgeId = bytesToHex(keyPair.publicKey);\n const connection = new BridgeConnection({\n role: \"creator\",\n origin,\n bridgeId,\n keyPair,\n reconnect: options.reconnect,\n keepalive: options.keepalive,\n pingInterval: options.pingInterval,\n bridgeUrl: options.bridgeUrl\n });\n if (options.resume) {\n connection.setRemotePublicKey(options.remotePublicKey);\n await connection.computeSharedSecret();\n connection.resume();\n }\n if (options.resume || autoconnect) {\n await connection.connect(await connection._getWsConnectionUrl());\n }\n return {\n websocket: connection.getWebSocket(),\n connection,\n onConnect: (callback) => connection.onConnect(callback),\n onFailedToConnect: (callback) => connection.onFailedToConnect(callback),\n onSecureChannelEstablished: (callback) => connection.onSecureChannelEstablished(callback),\n onRawMessage: (callback) => connection.onRawMessage(callback),\n onSecureMessage: (callback) => connection.onSecureMessage(callback),\n onError: (callback) => connection.onError(callback),\n onDisconnect: (callback) => connection.onDisconnect(callback),\n isBridgeConnected: () => connection.isBridgeConnected(),\n isSecureChannelEstablished: () => connection.isSecureChannelEstablished(),\n sendMessage: (method, params) => connection.sendSecureMessage(method, params || {}),\n connectionString: connection.connectionString,\n bridgeId: connection.getBridgeId(),\n origin: connection.bridgeOrigin,\n getKeyPair: () => connection.keyPair,\n getPublicKey: () => connection.getPublicKey(),\n // TODO: Deprecate close() and use cleanup() instead\n getRemotePublicKey: () => connection.getRemotePublicKey(),\n close: () => connection.cleanup(),\n cleanup: () => connection.cleanup(),\n [Symbol.dispose]: () => connection.cleanup()\n };\n }\n /**\n * Join an existing bridge connection as the joiner\n * @param uri The connection string from the creator\n * @param options Options for joining a bridge\n * @returns A promise that resolves to a functional bridge interface\n */\n static async join(uri, options = {}) {\n if (options.debug) {\n debug.enable(\"bridge*\");\n }\n if (options.resume && !options.keyPair) {\n throw new Error(\"Resuming a bridge session requires a keyPair\");\n }\n const keyPair = options.keyPair || generateECDHKeyPair();\n const { domain, pubkey } = _Bridge.parseConnectionString(uri);\n const connection = new BridgeConnection({\n role: \"joiner\",\n domain,\n bridgeId: pubkey,\n keyPair,\n reconnect: options.reconnect,\n keepalive: options.keepalive,\n pingInterval: options.pingInterval,\n bridgeUrl: options.bridgeUrl\n });\n connection.setRemotePublicKey(new Uint8Array(Buffer.from(pubkey, \"hex\")));\n await connection.computeSharedSecret();\n if (options.resume) connection.resume();\n await connection.connect(await connection._getWsConnectionUrl());\n return {\n websocket: connection.getWebSocket(),\n connection,\n onConnect: (callback) => connection.onConnect(callback),\n onFailedToConnect: (callback) => connection.onFailedToConnect(callback),\n onSecureChannelEstablished: (callback) => connection.onSecureChannelEstablished(callback),\n onRawMessage: (callback) => connection.onRawMessage(callback),\n onSecureMessage: (callback) => connection.onSecureMessage(callback),\n onError: (callback) => connection.onError(callback),\n onDisconnect: (callback) => connection.onDisconnect(callback),\n isBridgeConnected: () => connection.isBridgeConnected(),\n isSecureChannelEstablished: () => connection.isSecureChannelEstablished(),\n sendMessage: (method, params) => connection.sendSecureMessage(method, params || {}),\n connectionString: connection.connectionString,\n bridgeId: connection.getBridgeId(),\n origin: connection.bridgeOrigin,\n getKeyPair: () => connection.keyPair,\n getPublicKey: () => connection.getPublicKey(),\n getRemotePublicKey: () => connection.getRemotePublicKey(),\n // TODO: Deprecate close() and use cleanup() instead\n close: () => connection.cleanup(),\n cleanup: () => connection.cleanup(),\n [Symbol.dispose]: () => connection.cleanup()\n };\n }\n static parseConnectionString(uri) {\n const parsedUri = new URL(uri);\n const pubkey = parsedUri.pathname;\n let domain = parsedUri.searchParams.get(\"d\");\n if (!domain || !pubkey) {\n throw new Error(\"Invalid connection string: missing required parameters\");\n }\n if (domain !== \"nodejs\" && !domain.startsWith(\"http\")) domain = \"https://\" + domain;\n return { domain, pubkey };\n }\n /**\n * Generate a new ECDH key pair\n * @returns A promise that resolves to a key pair\n */\n static async generateKeyPair() {\n return generateECDHKeyPair();\n }\n};\n\nexport {\n Bridge\n};\n","import {registerLocale,getAlpha3Code}from'i18n-iso-countries';import {formatQueryResultDates,NullifierType,getProofData,getNumberOfPublicInputs,DisclosedData,areDatesEqual,formatName,getMinAgeFromCommittedInputs,getMaxAgeFromCommittedInputs,getBirthdateMinDateTimestamp,SECONDS_BETWEEN_1900_AND_1970,getBirthdateMaxDateTimestamp,getMinDateFromCommittedInputs,getMaxDateFromCommittedInputs,getServiceScopeHash,getServiceScopeFromDisclosureProof,getScopeHash,getServiceSubScopeFromDisclosureProof,getCurrentDateFromDisclosureProof,getCertificateRegistryRootFromOuterProof,getCircuitRegistryRootFromOuterProof,getCurrentDateFromOuterProof,getParamCommitmentsFromOuterProof,getScopeFromOuterProof,getSubscopeFromOuterProof,getAgeEVMParameterCommitment,getAgeParameterCommitment,getDateEVMParameterCommitment,ProofType,getDateParameterCommitment,getDiscloseEVMParameterCommitment,getDiscloseParameterCommitment,getCountryEVMParameterCommitment,getCountryParameterCommitment,getBindEVMParameterCommitment,formatBoundData,getBindParameterCommitment,SanctionsBuilder,getFacematchEvmParameterCommitment,getFacematchParameterCommitment,getNullifierFromOuterProof,getNullifierTypeFromOuterProof,getCommitmentFromDSCProof,getMerkleRootFromDSCProof,getCommitmentInFromIDDataProof,getCommitmentOutFromIDDataProof,getCommitmentInFromIntegrityProof,getCommitmentOutFromIntegrityProof,getCommitmentInFromDisclosureProof,getParameterCommitmentFromDisclosureProof,getNullifierFromDisclosureProof,getNullifierTypeFromDisclosureProof,getCommittedInputCount,ProofTypeLength,rightPadArrayWithZeros,numberToBytesBE}from'@zkpassport/utils';export{ASEAN_COUNTRIES,EEA_COUNTRIES,EU_COUNTRIES,MERCOSUR_COUNTRIES,NullifierType,ProofType,ProofTypeLength,SANCTIONED_COUNTRIES,SCHENGEN_COUNTRIES}from'@zkpassport/utils';import bt from'i18n-iso-countries/langs/en.json';import {Buffer}from'buffer/';import {RegistryClient}from'@zkpassport/registry';import {Bridge}from'@obsidion/bridge';import {sha256}from'@noble/hashes/sha2.js';import {hexToBytes,bytesToHex}from'@noble/hashes/utils.js';var le=\"0.12.0\";var Z=new Date(0),ie=\"0x1fa73686cf510f8f85757b0602de0dd72a13e68ae2092462be8b72662e7f179b\",se=\"0x24d9929b248be7eeecaa98e105c034a50539610f3fdd4cb9c8983ef4100d615d\",oe=\"0x2532418a107c5306fa8308c22255792cf77e4a290cbce8a840a642a3e591340b\",re=\"0x16700a2d9168a194fc85f237af5829b5a2be05b8ae8ac4879ada34cf54a9c211\",ce=\"0x0e1889bec6c1d686abcf08360ff404f803ab345881ea8cba6aad33b7f7f7ffe0\";var ae=class{static checkDiscloseBytesPublicInputs(n,a,e){let t={},o=true,c=n.committedInputs?.disclose_bytes?.disclosedBytes??n.committedInputs?.disclose_bytes_evm?.disclosedBytes,m=DisclosedData.fromDisclosedBytes(c,\"passport\"),d=DisclosedData.fromDisclosedBytes(c,\"id_card\");if(e.document_type&&(e.document_type.eq&&e.document_type.eq.result&&e.document_type.eq.expected!==m.documentType&&(console.warn(\"Document type does not match the expected document type\"),o=false,t.document_type={...t.document_type,eq:{expected:`${e.document_type.eq.expected}`,received:`${m.documentType??d.documentType}`,message:\"Document type does not match the expected document type\"}}),e.document_type.disclose&&e.document_type.disclose.result!==d.documentType&&(console.warn(\"Document type does not match the disclosed document type in query result\"),o=false,t.document_type={...t.document_type,disclose:{expected:`${e.document_type.disclose?.result}`,received:`${d.documentType??m.documentType}`,message:\"Document type does not match the disclosed document type in query result\"}}),e.document_type.eq&&(a.document_type?.eq===void 0||e.document_type.eq.expected!==a.document_type.eq)&&(console.warn(\"Document type eq does not match the original query\"),o=false,t.document_type={...t.document_type,eq:{expected:`${a.document_type?.eq}`,received:`${e.document_type.eq.expected}`,message:\"Document type eq does not match the original query\"}}),e.document_type.disclose&&!a.document_type?.disclose&&(console.warn(\"Document type disclose is not in the original query\"),o=false,t.document_type={...t.document_type,disclose:{expected:\"Not requested in original query\",received:`${e.document_type.disclose.result}`,message:\"Document type disclose is not in the original query\"}})),e.birthdate){let s=m.dateOfBirth,l=d.dateOfBirth;e.birthdate.eq&&e.birthdate.eq.result&&!areDatesEqual(e.birthdate.eq.expected,s)&&!areDatesEqual(e.birthdate.eq.expected,l)&&(console.warn(\"Birthdate does not match the expected birthdate\"),o=false,t.birthdate={...t.birthdate,eq:{expected:`${e.birthdate.eq.expected.toISOString()}`,received:`${s?.toISOString()??l?.toISOString()}`,message:\"Birthdate does not match the expected birthdate\"}}),e.birthdate.disclose&&!areDatesEqual(e.birthdate.disclose.result,s)&&!areDatesEqual(e.birthdate.disclose.result,l)&&(console.warn(\"Birthdate does not match the disclosed birthdate in query result\"),o=false,t.birthdate={...t.birthdate,disclose:{expected:`${e.birthdate.disclose.result.toISOString()}`,received:`${s?.toISOString()??l?.toISOString()}`,message:\"Birthdate does not match the disclosed birthdate in query result\"}}),e.birthdate.eq&&(a.birthdate?.eq===void 0||!areDatesEqual(e.birthdate.eq.expected,a.birthdate.eq))&&(console.warn(\"Birthdate eq does not match the original query\"),o=false,t.birthdate={...t.birthdate,eq:{expected:`${a.birthdate?.eq?.toISOString?.()??\"undefined\"}`,received:`${e.birthdate.eq.expected.toISOString()}`,message:\"Birthdate eq does not match the original query\"}}),e.birthdate.disclose&&!a.birthdate?.disclose&&(console.warn(\"Birthdate disclose is not in the original query\"),o=false,t.birthdate={...t.birthdate,disclose:{expected:\"Not requested in original query\",received:`${e.birthdate.disclose.result}`,message:\"Birthdate disclose is not in the original query\"}});}if(e.expiry_date){let s=m.dateOfExpiry,l=d.dateOfExpiry;e.expiry_date.eq&&e.expiry_date.eq.result&&!areDatesEqual(e.expiry_date.eq.expected,s)&&!areDatesEqual(e.expiry_date.eq.expected,l)&&(console.warn(\"Expiry date does not match the expected expiry date\"),o=false,t.expiry_date={...t.expiry_date,eq:{expected:`${e.expiry_date.eq.expected.toISOString()}`,received:`${s?.toISOString()??l?.toISOString()}`,message:\"Expiry date does not match the expected expiry date\"}}),e.expiry_date.disclose&&!areDatesEqual(e.expiry_date.disclose.result,s)&&!areDatesEqual(e.expiry_date.disclose.result,l)&&(console.warn(\"Expiry date does not match the disclosed expiry date in query result\"),o=false,t.expiry_date={...t.expiry_date,disclose:{expected:`${e.expiry_date.disclose.result.toISOString()}`,received:`${s?.toISOString()??l?.toISOString()}`,message:\"Expiry date does not match the disclosed expiry date in query result\"}}),e.expiry_date.eq&&(a.expiry_date?.eq===void 0||!areDatesEqual(e.expiry_date.eq.expected,a.expiry_date.eq))&&(console.warn(\"Expiry date eq does not match the original query\"),o=false,t.expiry_date={...t.expiry_date,eq:{expected:`${a.expiry_date?.eq?.toISOString?.()??\"undefined\"}`,received:`${e.expiry_date.eq.expected.toISOString()}`,message:\"Expiry date eq does not match the original query\"}}),e.expiry_date.disclose&&!a.expiry_date?.disclose&&(console.warn(\"Expiry date disclose is not in the original query\"),o=false,t.expiry_date={...t.expiry_date,disclose:{expected:\"Not requested in original query\",received:`${e.expiry_date.disclose.result}`,message:\"Expiry date disclose is not in the original query\"}});}if(e.nationality){let s=m.nationality,l=d.nationality;e.nationality.eq&&e.nationality.eq.result&&e.nationality.eq.expected!==s&&e.nationality.eq.expected!==l&&(console.warn(\"Nationality does not match the expected nationality\"),o=false,t.nationality={...t.nationality,eq:{expected:`${e.nationality.eq.expected}`,received:`${s??l}`,message:\"Nationality does not match the expected nationality\"}}),e.nationality.disclose&&e.nationality.disclose.result!==s&&e.nationality.disclose.result!==l&&(console.warn(\"Nationality does not match the disclosed nationality in query result\"),o=false,t.nationality={...t.nationality,disclose:{expected:`${e.nationality.disclose.result}`,received:`${s??l}`,message:\"Nationality does not match the disclosed nationality in query result\"}}),e.nationality.eq&&(a.nationality?.eq===void 0||e.nationality.eq.expected!==a.nationality.eq)&&(console.warn(\"Nationality eq does not match the original query\"),o=false,t.nationality={...t.nationality,eq:{expected:`${a.nationality?.eq}`,received:`${e.nationality.eq.expected}`,message:\"Nationality eq does not match the original query\"}}),e.nationality.disclose&&!a.nationality?.disclose&&(console.warn(\"Nationality disclose is not in the original query\"),o=false,t.nationality={...t.nationality,disclose:{expected:\"Not requested in original query\",received:`${e.nationality.disclose.result}`,message:\"Nationality disclose is not in the original query\"}});}if(e.document_number){let s=m.documentNumber,l=d.documentNumber;e.document_number.eq&&e.document_number.eq.result&&e.document_number.eq.expected!==s&&e.document_number.eq.expected!==l&&(console.warn(\"Document number does not match the expected document number\"),o=false,t.document_number={...t.document_number,eq:{expected:`${e.document_number.eq.expected}`,received:`${s??l}`,message:\"Document number does not match the expected document number\"}}),e.document_number.disclose&&e.document_number.disclose.result!==s&&e.document_number.disclose.result!==l&&(console.warn(\"Document number does not match the disclosed document number in query result\"),o=false,t.document_number={...t.document_number,disclose:{expected:`${e.document_number.disclose.result}`,received:`${s??l}`,message:\"Document number does not match the disclosed document number in query result\"}}),e.document_number.eq&&(a.document_number?.eq===void 0||e.document_number.eq.expected!==a.document_number.eq)&&(console.warn(\"Document number eq does not match the original query\"),o=false,t.document_number={...t.document_number,eq:{expected:`${a.document_number?.eq}`,received:`${e.document_number.eq.expected}`,message:\"Document number eq does not match the original query\"}}),e.document_number.disclose&&!a.document_number?.disclose&&(console.warn(\"Document number disclose is not in the original query\"),o=false,t.document_number={...t.document_number,disclose:{expected:\"Not requested in original query\",received:`${e.document_number.disclose.result}`,message:\"Document number disclose is not in the original query\"}});}if(e.gender){let s=m.gender,l=d.gender;e.gender.eq&&e.gender.eq.result&&e.gender.eq.expected!==s&&e.gender.eq.expected!==l&&(console.warn(\"Gender does not match the expected gender\"),o=false,t.gender={...t.gender,eq:{expected:`${e.gender.eq.expected}`,received:`${s??l}`,message:\"Gender does not match the expected gender\"}}),e.gender.disclose&&e.gender.disclose.result!==s&&e.gender.disclose.result!==l&&(console.warn(\"Gender does not match the disclosed gender in query result\"),o=false,t.gender={...t.gender,disclose:{expected:`${e.gender.disclose.result}`,received:`${s??l}`,message:\"Gender does not match the disclosed gender in query result\"}}),e.gender.eq&&(a.gender?.eq===void 0||e.gender.eq.expected!==a.gender.eq)&&(console.warn(\"Gender eq does not match the original query\"),o=false,t.gender={...t.gender,eq:{expected:`${a.gender?.eq}`,received:`${e.gender.eq.expected}`,message:\"Gender eq does not match the original query\"}}),e.gender.disclose&&!a.gender?.disclose&&(console.warn(\"Gender disclose is not in the original query\"),o=false,t.gender={...t.gender,disclose:{expected:\"Not requested in original query\",received:`${e.gender.disclose.result}`,message:\"Gender disclose is not in the original query\"}});}if(e.issuing_country){let s=m.issuingCountry,l=d.issuingCountry;e.issuing_country.eq&&e.issuing_country.eq.result&&e.issuing_country.eq.expected!==s&&e.issuing_country.eq.expected!==l&&(console.warn(\"Issuing country does not match the expected issuing country\"),o=false,t.issuing_country={...t.issuing_country,eq:{expected:`${e.issuing_country.eq.expected}`,received:`${s??l}`,message:\"Issuing country does not match the expected issuing country\"}}),e.issuing_country.disclose&&e.issuing_country.disclose.result!==s&&e.issuing_country.disclose.result!==l&&(console.warn(\"Issuing country does not match the disclosed issuing country in query result\"),o=false,t.issuing_country={...t.issuing_country,disclose:{expected:`${e.issuing_country.disclose.result}`,received:`${s??l}`,message:\"Issuing country does not match the disclosed issuing country in query result\"}}),e.issuing_country.eq&&(a.issuing_country?.eq===void 0||e.issuing_country.eq.expected!==a.issuing_country.eq)&&(console.warn(\"Issuing country eq does not match the original query\"),o=false,t.issuing_country={...t.issuing_country,eq:{expected:`${a.issuing_country?.eq}`,received:`${e.issuing_country.eq.expected}`,message:\"Issuing country eq does not match the original query\"}}),e.issuing_country.disclose&&!a.issuing_country?.disclose&&(console.warn(\"Issuing country disclose is not in the original query\"),o=false,t.issuing_country={...t.issuing_country,disclose:{expected:\"Not requested in original query\",received:`${e.issuing_country.disclose.result}`,message:\"Issuing country disclose is not in the original query\"}});}if(e.fullname){let s=m.name,l=d.name;e.fullname.eq&&e.fullname.eq.result&&formatName(e.fullname.eq.expected).toLowerCase()!==s.toLowerCase()&&formatName(e.fullname.eq.expected).toLowerCase()!==l.toLowerCase()&&(console.warn(\"Fullname does not match the expected fullname\"),o=false,t.fullname={...t.fullname,eq:{expected:`${e.fullname.eq.expected}`,received:`${s??l}`,message:\"Fullname does not match the expected fullname\"}}),e.fullname.disclose&&formatName(e.fullname.disclose.result).toLowerCase()!==s.toLowerCase()&&formatName(e.fullname.disclose.result).toLowerCase()!==l.toLowerCase()&&(console.warn(\"Fullname does not match the disclosed fullname in query result\"),o=false,t.fullname={...t.fullname,disclose:{expected:`${e.fullname.disclose.result}`,received:`${s??l}`,message:\"Fullname does not match the disclosed fullname in query result\"}}),e.fullname.eq&&(a.fullname?.eq===void 0||formatName(e.fullname.eq.expected).toLowerCase()!==formatName(a.fullname.eq).toLowerCase())&&(console.warn(\"Fullname eq does not match the original query\"),o=false,t.fullname={...t.fullname,eq:{expected:`${a.fullname?.eq}`,received:`${e.fullname.eq.expected}`,message:\"Fullname eq does not match the original query\"}}),e.fullname.disclose&&!a.fullname?.disclose&&(console.warn(\"Fullname disclose is not in the original query\"),o=false,t.fullname={...t.fullname,disclose:{expected:\"Not requested in original query\",received:`${e.fullname.disclose.result}`,message:\"Fullname disclose is not in the original query\"}});}if(e.firstname){let s=m.firstName&&m.firstName.length>0?m.firstName:m.name,l=d.firstName&&d.firstName.length>0?d.firstName:d.name;e.firstname.eq&&e.firstname.eq.result&&formatName(e.firstname.eq.expected).toLowerCase()!==s.toLowerCase()&&formatName(e.firstname.eq.expected).toLowerCase()!==l.toLowerCase()&&(console.warn(\"Firstname does not match the expected firstname\"),o=false,t.firstname={...t.firstname,eq:{expected:`${e.firstname.eq.expected}`,received:`${s??l}`,message:\"Firstname does not match the expected firstname\"}}),e.firstname.disclose&&formatName(e.firstname.disclose.result).toLowerCase()!==s.toLowerCase()&&formatName(e.firstname.disclose.result).toLowerCase()!==l.toLowerCase()&&(console.warn(\"Firstname does not match the disclosed firstname in query result\"),o=false,t.firstname={...t.firstname,disclose:{expected:`${e.firstname.disclose.result}`,received:`${s??l}`,message:\"Firstname does not match the disclosed firstname in query result\"}}),e.firstname.eq&&(a.firstname?.eq===void 0||formatName(e.firstname.eq.expected).toLowerCase()!==formatName(a.firstname.eq).toLowerCase())&&(console.warn(\"Firstname eq does not match the original query\"),o=false,t.firstname={...t.firstname,eq:{expected:`${a.firstname?.eq}`,received:`${e.firstname.eq.expected}`,message:\"Firstname eq does not match the original query\"}}),e.firstname.disclose&&!a.firstname?.disclose&&(console.warn(\"Firstname disclose is not in the original query\"),o=false,t.firstname={...t.firstname,disclose:{expected:\"Not requested in original query\",received:`${e.firstname.disclose.result}`,message:\"Firstname disclose is not in the original query\"}});}if(e.lastname){let s=m.lastName&&m.lastName.length>0?m.lastName:m.name,l=d.lastName&&d.lastName.length>0?d.lastName:d.name;e.lastname.eq&&e.lastname.eq.result&&formatName(e.lastname.eq.expected).toLowerCase()!==s.toLowerCase()&&formatName(e.lastname.eq.expected).toLowerCase()!==l.toLowerCase()&&(console.warn(\"Lastname does not match the expected lastname\"),o=false,t.lastname={...t.lastname,eq:{expected:`${e.lastname.eq.expected}`,received:`${s??l}`,message:\"Lastname does not match the expected lastname\"}}),e.lastname.disclose&&formatName(e.lastname.disclose.result).toLowerCase()!==s.toLowerCase()&&formatName(e.lastname.disclose.result).toLowerCase()!==l.toLowerCase()&&(console.warn(\"Lastname does not match the disclosed lastname in query result\"),o=false,t.lastname={...t.lastname,disclose:{expected:`${e.lastname.disclose.result}`,received:`${s??l}`,message:\"Lastname does not match the disclosed lastname in query result\"}}),e.lastname.eq&&(a.lastname?.eq===void 0||formatName(e.lastname.eq.expected).toLowerCase()!==formatName(a.lastname.eq).toLowerCase())&&(console.warn(\"Lastname eq does not match the original query\"),o=false,t.lastname={...t.lastname,eq:{expected:`${a.lastname?.eq}`,received:`${e.lastname.eq.expected}`,message:\"Lastname eq does not match the original query\"}}),e.lastname.disclose&&!a.lastname?.disclose&&(console.warn(\"Lastname disclose is not in the original query\"),o=false,t.lastname={...t.lastname,disclose:{expected:\"Not requested in original query\",received:`${e.lastname.disclose.result}`,message:\"Lastname disclose is not in the original query\"}});}return {isCorrect:o,queryResultErrors:t}}static checkAgePublicInputs(n,a,e){let t={},o=true,c=new Date;new Date(c.getFullYear(),c.getMonth(),c.getDate(),0,0,0,0);let d=getMinAgeFromCommittedInputs(n.committedInputs?.compare_age??n.committedInputs?.compare_age_evm),s=getMaxAgeFromCommittedInputs(n.committedInputs?.compare_age??n.committedInputs?.compare_age_evm);return e.age?(e.age.gte&&e.age.gte.result&&d!==e.age.gte.expected&&(console.warn(\"Age is not greater than or equal to the expected age\"),o=false,t.age={...t.age,gte:{expected:e.age.gte.expected,received:d,message:\"Age is not greater than or equal to the expected age\"}}),e.age.gt&&e.age.gt.result&&d!==e.age.gt.expected+1&&(console.warn(\"Age is not greater than the expected age\"),o=false,t.age={...t.age,gt:{expected:e.age.gt.expected,received:d,message:\"Age is not greater than the expected age\"}}),e.age.lt&&e.age.lt.result&&s!==e.age.lt.expected-1&&(console.warn(\"Age is not less than the expected age\"),o=false,t.age={...t.age,lt:{expected:e.age.lt.expected,received:s,message:\"Age is not less than the expected age\"}}),e.age.lte&&e.age.lte.result&&s!==e.age.lte.expected&&(console.warn(\"Age is not less than or equal to the expected age\"),o=false,t.age={...t.age,lte:{expected:e.age.lte.expected,received:s,message:\"Age is not less than or equal to the expected age\"}}),e.age.eq&&e.age.eq.result&&(d!==e.age.eq.expected||s!==e.age.eq.expected)&&(console.warn(\"Age does not match the expected age\"),o=false,t.age={...t.age,eq:{expected:e.age.eq.expected,received:d!==e.age.eq.expected?d:s,message:\"Age does not match the expected age\"}}),e.age.range&&e.age.range.result&&(d!==e.age.range.expected[0]||s!==e.age.range.expected[1])&&(console.warn(\"Age is not in the expected range\"),o=false,t.age={...t.age,range:{expected:e.age.range.expected,received:[d,s],message:\"Age is not in the expected range\"}}),!e.age.lt&&!e.age.lte&&!e.age.eq&&!e.age.range&&s!=0&&(console.warn(\"Maximum age should be equal to 0\"),o=false,t.age={...t.age,disclose:{expected:0,received:s,message:\"Maximum age should be equal to 0\"}}),!e.age.gte&&!e.age.gt&&!e.age.eq&&!e.age.range&&d!=0&&(console.warn(\"Minimum age should be equal to 0\"),o=false,t.age={...t.age,disclose:{expected:0,received:d,message:\"Minimum age should be equal to 0\"}}),e.age.disclose&&(e.age.disclose.result!==d||e.age.disclose.result!==s)&&(console.warn(\"Age does not match the disclosed age in query result\"),o=false,t.age={...t.age,disclose:{expected:`${d}`,received:`${e.age.disclose.result}`,message:\"Age does not match the disclosed age in query result\"}})):(console.warn(\"Age is not set in the query result\"),o=false,t.age={...t.age,disclose:{message:\"Age is not set in the query result\"}}),e.age?.gte&&(a.age?.gte===void 0||e.age.gte.expected!==a.age.gte)&&(console.warn(\"Age gte does not match the original query\"),o=false,t.age={...t.age,gte:{expected:a.age?.gte,received:e.age.gte.expected,message:\"Age gte does not match the original query\"}}),e.age?.gt&&(a.age?.gt===void 0||e.age.gt.expected!==a.age.gt)&&(console.warn(\"Age gt does not match the original query\"),o=false,t.age={...t.age,gt:{expected:a.age?.gt,received:e.age.gt.expected,message:\"Age gt does not match the original query\"}}),e.age?.lt&&(a.age?.lt===void 0||e.age.lt.expected!==a.age.lt)&&(console.warn(\"Age lt does not match the original query\"),o=false,t.age={...t.age,lt:{expected:a.age?.lt,received:e.age.lt.expected,message:\"Age lt does not match the original query\"}}),e.age?.lte&&(a.age?.lte===void 0||e.age.lte.expected!==a.age.lte)&&(console.warn(\"Age lte does not match the original query\"),o=false,t.age={...t.age,lte:{expected:a.age?.lte,received:e.age.lte.expected,message:\"Age lte does not match the original query\"}}),e.age?.eq&&(a.age?.eq===void 0||e.age.eq.expected!==a.age.eq)&&(console.warn(\"Age eq does not match the original query\"),o=false,t.age={...t.age,eq:{expected:a.age?.eq,received:e.age.eq.expected,message:\"Age eq does not match the original query\"}}),e.age?.range&&(a.age?.range===void 0||e.age.range.expected[0]!==a.age.range[0]||e.age.range.expected[1]!==a.age.range[1])&&(console.warn(\"Age range does not match the original query\"),o=false,t.age={...t.age,range:{expected:a.age?.range,received:e.age.range.expected,message:\"Age range does not match the original query\"}}),e.age?.disclose&&!a.age?.disclose&&(console.warn(\"Age disclose is not in the original query\"),o=false,t.age={...t.age,disclose:{expected:\"Not requested in original query\",received:`${e.age.disclose.result}`,message:\"Age disclose is not in the original query\"}}),{isCorrect:o,queryResultErrors:t}}static checkBirthdatePublicInputs(n,a,e){let t={},o=true,c=new Date;new Date(c.getFullYear(),c.getMonth(),c.getDate(),0,0,0);let d=getBirthdateMinDateTimestamp(n.committedInputs?.compare_birthdate??n.committedInputs?.compare_birthdate_evm,-1*SECONDS_BETWEEN_1900_AND_1970),s=getBirthdateMaxDateTimestamp(n.committedInputs?.compare_birthdate??n.committedInputs?.compare_birthdate_evm,-1*SECONDS_BETWEEN_1900_AND_1970);if(e.birthdate){if(e.birthdate.gte&&e.birthdate.gte.result&&!areDatesEqual(d,e.birthdate.gte.expected)&&(console.warn(\"Birthdate is not greater than or equal to the expected birthdate\"),o=false,t.birthdate={...t.birthdate,gte:{expected:e.birthdate.gte.expected,received:d,message:\"Birthdate is not greater than or equal to the expected birthdate\"}}),e.birthdate.gt&&e.birthdate.gt.result){let l=new Date(e.birthdate.gt.expected);l.setDate(l.getDate()+1),areDatesEqual(d,l)||(console.warn(\"Birthdate is not greater than the expected birthdate\"),o=false,t.birthdate={...t.birthdate,gt:{expected:e.birthdate.gt.expected,received:d,message:\"Birthdate is not greater than the expected birthdate\"}});}if(e.birthdate.lte&&e.birthdate.lte.result&&!areDatesEqual(s,e.birthdate.lte.expected)&&(console.warn(\"Birthdate is not less than the expected birthdate\"),o=false,t.birthdate={...t.birthdate,lte:{expected:e.birthdate.lte.expected,received:s,message:\"Birthdate is not less than the expected birthdate\"}}),e.birthdate.lt&&e.birthdate.lt.result){let l=new Date(e.birthdate.lt.expected);l.setDate(l.getDate()-1),areDatesEqual(s,l)||(console.warn(\"Birthdate is not less than the expected birthdate\"),o=false,t.birthdate={...t.birthdate,lt:{expected:e.birthdate.lt.expected,received:s,message:\"Birthdate is not less than the expected birthdate\"}});}e.birthdate.range&&e.birthdate.range.result&&(!areDatesEqual(d,e.birthdate.range.expected[0])||!areDatesEqual(s,e.birthdate.range.expected[1]))&&(console.warn(\"Birthdate is not in the expected range\"),o=false,t.birthdate={...t.birthdate,range:{expected:e.birthdate.range.expected,received:[d,s],message:\"Birthdate is not in the expected range\"}}),!e.birthdate.lte&&!e.birthdate.lt&&!e.birthdate.eq&&!e.birthdate.range&&!areDatesEqual(s,Z)&&(console.warn(\"Maximum birthdate should be equal to default date value\"),o=false,t.birthdate={...t.birthdate,disclose:{expected:`${Z.toISOString()}`,received:`${s.toISOString()}`,message:\"Maximum birthdate should be equal to default date value\"}}),!e.birthdate.gte&&!e.birthdate.gt&&!e.birthdate.eq&&!e.birthdate.range&&!areDatesEqual(d,Z)&&(console.warn(\"Minimum birthdate should be equal to default date value\"),o=false,t.birthdate={...t.birthdate,disclose:{expected:`${Z.toISOString()}`,received:`${d.toISOString()}`,message:\"Minimum birthdate should be equal to default date value\"}});}else console.warn(\"Birthdate is not set in the query result\"),o=false,t.birthdate={...t.birthdate,disclose:{message:\"Birthdate is not set in the query result\"}};return e.birthdate?.gte&&(a.birthdate?.gte===void 0||!areDatesEqual(e.birthdate.gte.expected,a.birthdate.gte))&&(console.warn(\"Birthdate gte does not match the original query\"),o=false,t.birthdate={...t.birthdate,gte:{expected:a.birthdate?.gte,received:e.birthdate.gte.expected,message:\"Birthdate gte does not match the original query\"}}),e.birthdate?.gt&&(a.birthdate?.gt===void 0||!areDatesEqual(e.birthdate.gt.expected,a.birthdate.gt))&&(console.warn(\"Birthdate gt does not match the original query\"),o=false,t.birthdate={...t.birthdate,gt:{expected:a.birthdate?.gt,received:e.birthdate.gt.expected,message:\"Birthdate gt does not match the original query\"}}),e.birthdate?.lte&&(a.birthdate?.lte===void 0||!areDatesEqual(e.birthdate.lte.expected,a.birthdate.lte))&&(console.warn(\"Birthdate lte does not match the original query\"),o=false,t.birthdate={...t.birthdate,lte:{expected:a.birthdate?.lte,received:e.birthdate.lte.expected,message:\"Birthdate lte does not match the original query\"}}),e.birthdate?.lt&&(a.birthdate?.lt===void 0||!areDatesEqual(e.birthdate.lt.expected,a.birthdate.lt))&&(console.warn(\"Birthdate lt does not match the original query\"),o=false,t.birthdate={...t.birthdate,lt:{expected:a.birthdate?.lt,received:e.birthdate.lt.expected,message:\"Birthdate lt does not match the original query\"}}),e.birthdate?.range&&(a.birthdate?.range===void 0||!areDatesEqual(e.birthdate.range.expected[0],a.birthdate.range[0])||!areDatesEqual(e.birthdate.range.expected[1],a.birthdate.range[1]))&&(console.warn(\"Birthdate range does not match the original query\"),o=false,t.birthdate={...t.birthdate,range:{expected:a.birthdate?.range,received:e.birthdate.range.expected,message:\"Birthdate range does not match the original query\"}}),{isCorrect:o,queryResultErrors:t}}static checkExpiryDatePublicInputs(n,a,e){let t={},o=true,c=new Date;new Date(c.getFullYear(),c.getMonth(),c.getDate(),0,0,0);let d=getMinDateFromCommittedInputs(n.committedInputs?.compare_expiry??n.committedInputs?.compare_expiry_evm),s=getMaxDateFromCommittedInputs(n.committedInputs?.compare_expiry??n.committedInputs?.compare_expiry_evm);return e.expiry_date?(e.expiry_date.gte&&e.expiry_date.gte.result&&!areDatesEqual(d,e.expiry_date.gte.expected)&&(console.warn(\"Expiry date is not greater than or equal to the expected expiry date\"),o=false,t.expiry_date={...t.expiry_date,gte:{expected:e.expiry_date.gte.expected,received:d,message:\"Expiry date is not greater than or equal to the expected expiry date\"}}),e.expiry_date.lte&&e.expiry_date.lte.result&&!areDatesEqual(s,e.expiry_date.lte.expected)&&(console.warn(\"Expiry date is not less than the expected expiry date\"),o=false,t.expiry_date={...t.expiry_date,lte:{expected:e.expiry_date.lte.expected,received:s,message:\"Expiry date is not less than the expected expiry date\"}}),e.expiry_date.range&&e.expiry_date.range.result&&(!areDatesEqual(d,e.expiry_date.range.expected[0])||!areDatesEqual(s,e.expiry_date.range.expected[1]))&&(console.warn(\"Expiry date is not in the expected range\"),o=false,t.expiry_date={...t.expiry_date,range:{expected:e.expiry_date.range.expected,received:[d,s],message:\"Expiry date is not in the expected range\"}}),!e.expiry_date.lte&&!e.expiry_date.lt&&!e.expiry_date.eq&&!e.expiry_date.range&&!areDatesEqual(s,Z)&&(console.warn(\"Maximum expiry date should be equal to default date value\"),o=false,t.expiry_date={...t.expiry_date,disclose:{expected:`${Z.toISOString()}`,received:`${s.toISOString()}`,message:\"Maximum expiry date should be equal to default date value\"}}),!e.expiry_date.gte&&!e.expiry_date.gt&&!e.expiry_date.eq&&!e.expiry_date.range&&!areDatesEqual(d,Z)&&(console.warn(\"Minimum expiry date should be equal to default date value\"),o=false,t.expiry_date={...t.expiry_date,disclose:{expected:`${Z.toISOString()}`,received:`${d.toISOString()}`,message:\"Minimum expiry date should be equal to default date value\"}})):(console.warn(\"Expiry date is not set in the query result\"),o=false,t.expiry_date={...t.expiry_date,disclose:{message:\"Expiry date is not set in the query result\"}}),e.expiry_date?.gte&&(a.expiry_date?.gte===void 0||!areDatesEqual(e.expiry_date.gte.expected,a.expiry_date.gte))&&(console.warn(\"Expiry date gte does not match the original query\"),o=false,t.expiry_date={...t.expiry_date,gte:{expected:a.expiry_date?.gte,received:e.expiry_date.gte.expected,message:\"Expiry date gte does not match the original query\"}}),e.expiry_date?.gt&&(a.expiry_date?.gt===void 0||!areDatesEqual(e.expiry_date.gt.expected,a.expiry_date.gt))&&(console.warn(\"Expiry date gt does not match the original query\"),o=false,t.expiry_date={...t.expiry_date,gt:{expected:a.expiry_date?.gt,received:e.expiry_date.gt.expected,message:\"Expiry date gt does not match the original query\"}}),e.expiry_date?.lte&&(a.expiry_date?.lte===void 0||!areDatesEqual(e.expiry_date.lte.expected,a.expiry_date.lte))&&(console.warn(\"Expiry date lte does not match the original query\"),o=false,t.expiry_date={...t.expiry_date,lte:{expected:a.expiry_date?.lte,received:e.expiry_date.lte.expected,message:\"Expiry date lte does not match the original query\"}}),e.expiry_date?.lt&&(a.expiry_date?.lt===void 0||!areDatesEqual(e.expiry_date.lt.expected,a.expiry_date.lt))&&(console.warn(\"Expiry date lt does not match the original query\"),o=false,t.expiry_date={...t.expiry_date,lt:{expected:a.expiry_date?.lt,received:e.expiry_date.lt.expected,message:\"Expiry date lt does not match the original query\"}}),e.expiry_date?.range&&(a.expiry_date?.range===void 0||!areDatesEqual(e.expiry_date.range.expected[0],a.expiry_date.range[0])||!areDatesEqual(e.expiry_date.range.expected[1],a.expiry_date.range[1]))&&(console.warn(\"Expiry date range does not match the original query\"),o=false,t.expiry_date={...t.expiry_date,range:{expected:a.expiry_date?.range,received:e.expiry_date.range.expected,message:\"Expiry date range does not match the original query\"}}),{isCorrect:o,queryResultErrors:t}}static checkNationalityExclusionPublicInputs(n,a,e){let t={},o=true;a.nationality&&a.nationality.out&&a.nationality.out.result?a.nationality.out.expected?.every(c=>e.includes(c))||(console.warn(\"Nationality exclusion list does not match the one from the query results\"),o=false,t.nationality={...t.nationality,out:{expected:a.nationality.out.expected,received:e,message:\"Nationality exclusion list does not match the one from the query results\"}}):(!a.nationality||!a.nationality.out)&&(console.warn(\"Nationality exclusion is not set in the query result\"),o=false,t.nationality={...t.nationality,out:{message:\"Nationality exclusion is not set in the query result\"}});for(let c=1;c<e.length;c++)e[c]<e[c-1]&&(console.warn(\"The nationality exclusion list has not been sorted, and thus the proof cannot be trusted\"),o=false,t.nationality={...t.nationality,out:{message:\"The nationality exclusion list has not been sorted, and thus the proof cannot be trusted\"}});return a.nationality?.out&&(n.nationality?.out===void 0||a.nationality.out.expected?.length!==n.nationality.out.length||!a.nationality.out.expected?.every(c=>n.nationality.out.includes(c)))&&(console.warn(\"Nationality exclusion list does not match the original query\"),o=false,t.nationality={...t.nationality,out:{expected:n.nationality?.out,received:a.nationality.out.expected,message:\"Nationality exclusion list does not match the original query\"}}),{isCorrect:o,queryResultErrors:t}}static checkIssuingCountryExclusionPublicInputs(n,a,e){let t={},o=true;a.issuing_country&&a.issuing_country.out&&a.issuing_country.out.result?a.issuing_country.out.expected?.every(c=>e.includes(c))||(console.warn(\"Issuing country exclusion list does not match the one from the query results\"),o=false,t.issuing_country={...t.issuing_country,out:{expected:a.issuing_country.out.expected,received:e,message:\"Issuing country exclusion list does not match the one from the query results\"}}):(!a.issuing_country||!a.issuing_country.out)&&(console.warn(\"Issuing country exclusion is not set in the query result\"),o=false,t.issuing_country={...t.issuing_country,out:{message:\"Issuing country exclusion is not set in the query result\"}});for(let c=1;c<e.length;c++)e[c]<e[c-1]&&(console.warn(\"The issuing country exclusion list has not been sorted, and thus the proof cannot be trusted\"),o=false,t.issuing_country={...t.issuing_country,out:{message:\"The issuing country exclusion list has not been sorted, and thus the proof cannot be trusted\"}});return a.issuing_country?.out&&(n.issuing_country?.out===void 0||a.issuing_country.out.expected?.length!==n.issuing_country.out.length||!a.issuing_country.out.expected?.every(c=>n.issuing_country.out.includes(c)))&&(console.warn(\"Issuing country exclusion list does not match the original query\"),o=false,t.issuing_country={...t.issuing_country,out:{expected:n.issuing_country?.out,received:a.issuing_country.out.expected,message:\"Issuing country exclusion list does not match the original query\"}}),{isCorrect:o,queryResultErrors:t}}static checkNationalityInclusionPublicInputs(n,a,e){let t={},o=true;return a.nationality&&a.nationality.in&&a.nationality.in.result?a.nationality.in.expected?.every(c=>e.includes(c))||(console.warn(\"Nationality inclusion list does not match the one from the query results\"),o=false,t.nationality={...t.nationality,in:{expected:a.nationality.in.expected,received:e,message:\"Nationality inclusion list does not match the one from the query results\"}}):(!a.nationality||!a.nationality.in)&&(console.warn(\"Nationality inclusion is not set in the query result\"),o=false,t.nationality={...t.nationality,in:{message:\"Nationality inclusion is not set in the query result\"}}),a.nationality?.in&&(n.nationality?.in===void 0||a.nationality.in.expected?.length!==n.nationality.in.length||!a.nationality.in.expected?.every(c=>n.nationality.in.includes(c)))&&(console.warn(\"Nationality inclusion list does not match the original query\"),o=false,t.nationality={...t.nationality,in:{expected:n.nationality?.in,received:a.nationality.in.expected,message:\"Nationality inclusion list does not match the original query\"}}),{isCorrect:o,queryResultErrors:t}}static checkIssuingCountryInclusionPublicInputs(n,a,e){let t={},o=true;return a.issuing_country&&a.issuing_country.in&&a.issuing_country.in.result?a.issuing_country.in.expected?.every(c=>e.includes(c))||(console.warn(\"Issuing country inclusion list does not match the one from the query results\"),o=false,t.issuing_country={...t.issuing_country,in:{expected:a.issuing_country.in.expected,received:e,message:\"Issuing country inclusion list does not match the one from the query results\"}}):(!a.issuing_country||!a.issuing_country.in)&&(console.warn(\"Issuing country inclusion is not set in the query result\"),o=false,t.issuing_country={...t.issuing_country,in:{message:\"Issuing country inclusion is not set in the query result\"}}),a.issuing_country?.in&&(n.issuing_country?.in===void 0||a.issuing_country.in.expected?.length!==n.issuing_country.in.length||!a.issuing_country.in.expected?.every(c=>n.issuing_country.in.includes(c)))&&(console.warn(\"Issuing country inclusion list does not match the original query\"),o=false,t.issuing_country={...t.issuing_country,in:{expected:n.issuing_country?.in,received:a.issuing_country.in.expected,message:\"Issuing country inclusion list does not match the original query\"}}),{isCorrect:o,queryResultErrors:t}}static checkScopeFromDisclosureProof(n,a,e,t,o){let c=true;return n&&getServiceScopeHash(n)!==getServiceScopeFromDisclosureProof(a)&&(console.warn(\"The proof comes from a different domain than the one expected\"),c=false,e[t]||(e[t]={}),e[t].scope={expected:`Scope: ${getServiceScopeHash(n).toString()}`,received:`Scope: ${BigInt(a.publicInputs[1]).toString()}`,message:\"The proof comes from a different domain than the one expected\"}),o&&getScopeHash(o)!==getServiceSubScopeFromDisclosureProof(a)&&(console.warn(\"The proof uses a different scope than the one expected\"),c=false,e[t]||(e[t]={}),e[t].scope={expected:`Scope: ${getScopeHash(o).toString()}`,received:`Scope: ${BigInt(a.publicInputs[2]).toString()}`,message:\"The proof uses a different scope than the one expected\"}),{isCorrect:c,queryResultErrors:e}}static async checkCertificateRegistryRoot(n,a,e){let t=true;try{await new RegistryClient({chainId:11155111}).isCertificateRootValid(n)||(console.warn(\"The ID was signed by an unrecognized root certificate\"),t=!1,a[e?\"outer\":\"sig_check_dsc\"]||(a[e?\"outer\":\"sig_check_dsc\"]={}),a[e?\"outer\":\"sig_check_dsc\"].certificate={expected:\"A valid root from ZKPassport Registry\",received:`Got invalid certificate registry root: ${n}`,message:\"The ID was signed by an unrecognized root certificate\"});}catch(o){console.warn(o),console.warn(\"The ID was signed by an unrecognized root certificate\"),t=false,a[e?\"outer\":\"sig_check_dsc\"]||(a[e?\"outer\":\"sig_check_dsc\"]={}),a[e?\"outer\":\"sig_check_dsc\"].certificate={expected:\"A valid root from ZKPassport Registry\",received:`Got invalid certificate registry root: ${n}`,message:\"The ID was signed by an unrecognized root certificate\"};}return {isCorrect:t,queryResultErrors:a}}static async checkCircuitRegistryRoot(n,a){let e=true;try{await new RegistryClient({chainId:11155111}).isCircuitRootValid(n)||(console.warn(\"The proof uses unrecognized circuits\"),e=!1,a.outer.circuit={expected:\"A valid circuit from ZKPassport Registry\",received:`Got invalid circuit registry root: ${n}`,message:\"The proof uses an unrecognized circuit\"});}catch(t){console.warn(t),console.warn(\"The proof uses unrecognized circuits\"),e=false,a.outer.circuit={expected:\"A valid circuit from ZKPassport Registry\",received:`Got invalid circuit registry root: ${n}`,message:\"The proof uses an unrecognized circuit\"};}return {isCorrect:e,queryResultErrors:a}}static checkBindPublicInputs(n,a,e){let t={},o=true;if(a.bind){let c=[];a.bind.user_address?.toLowerCase().replace(\"0x\",\"\")!==e.user_address?.toLowerCase().replace(\"0x\",\"\")&&(console.warn(\"Bound user address does not match the one from the query results\"),o=false,c.push(`user_address: expected ${a.bind.user_address}, received ${e.user_address}`)),a.bind.chain!==e.chain&&(console.warn(\"Bound chain id does not match the one from the query results\"),o=false,c.push(`chain: expected ${a.bind.chain}, received ${e.chain}`)),a.bind.custom_data?.trim().toLowerCase()!==e.custom_data?.trim().toLowerCase()&&(console.warn(\"Bound custom data does not match the one from the query results\"),o=false,c.push(`custom_data: expected ${a.bind.custom_data}, received ${e.custom_data}`)),c.length>0&&(t.bind={...t.bind,eq:{expected:`${a.bind.user_address}, ${a.bind.chain}, ${a.bind.custom_data}`,received:`${e.user_address}, ${e.chain}, ${e.custom_data}`,message:`Bound data does not match: ${c.join(\"; \")}`}});}return a.bind&&(n.bind===void 0||a.bind.user_address?.toLowerCase().replace(\"0x\",\"\")!==n.bind.user_address?.toLowerCase().replace(\"0x\",\"\")||a.bind.chain!==n.bind.chain||a.bind.custom_data?.trim().toLowerCase()!==n.bind.custom_data?.trim().toLowerCase())&&(console.warn(\"Bound data does not match the original query\"),o=false,t.bind={...t.bind,eq:{expected:`${n.bind?.user_address}, ${n.bind?.chain}, ${n.bind?.custom_data}`,received:`${a.bind.user_address}, ${a.bind.chain}, ${a.bind.custom_data}`,message:\"Bound data does not match the original query\"}}),{isCorrect:o,queryResultErrors:t}}static async checkSanctionsExclusionPublicInputs(n,a,e,t){let o={},c=true;if(a.sanctions&&a.sanctions.passed){let m=await t.getRoot();e.rootHash!==m&&(console.warn(\"Invalid sanctions registry root\"),c=false,o.sanctions={...o.sanctions,eq:{expected:m,received:e.rootHash,message:\"Invalid sanctions registry root\"}}),a.sanctions.isStrict!==e.isStrict&&(console.warn(\"Invalid sanctions strict mode\"),c=false,o.sanctions={...o.sanctions,eq:{expected:a.sanctions.isStrict.toString(),received:e.isStrict.toString(),message:\"Invalid sanctions strict mode\"}});}return a.sanctions&&(n.sanctions===void 0||a.sanctions.isStrict!==(n.sanctions.strict??false))&&(console.warn(\"Sanctions config does not match the original query\"),c=false,o.sanctions={...o.sanctions,eq:{expected:`strict: ${n.sanctions?.strict??false}`,received:`strict: ${a.sanctions.isStrict}`,message:\"Sanctions config does not match the original query\"}}),{isCorrect:c,queryResultErrors:o}}static async checkFacematchPublicInputs(n,a,e){let t=true,o={};if(a.facematch&&a.facematch.passed){e.rootKeyLeaf!==oe&&e.rootKeyLeaf!==re&&e.rootKeyLeaf!==ce&&(console.warn(\"Invalid facematch root key hash\"),t=false,o.facematch={...o.facematch,eq:{expected:`${oe} (iOS) or ${re} (Android) or ${ce} (Android)`,received:e.rootKeyLeaf,message:\"Invalid facematch root key hash\"}});let c=\"production\";e.environment!==c&&(console.warn(\"Invalid facematch environment, it should be production\"),t=false,o.facematch={...o.facematch,eq:{expected:c,received:e.environment,message:\"Invalid facematch environment, it should be production\"}}),e.appIdHash!==ie&&e.appIdHash!==se&&(console.warn(\"Invalid facematch app id hash, the attestation should be coming from the ZKPassport app\"),t=false,o.facematch={...o.facematch,eq:{expected:`${ie} (iOS) or ${se} (Android)`,received:e.appIdHash,message:\"Invalid facematch app id hash, the attestation should be coming from the ZKPassport app\"}}),(e.mode!==a.facematch?.mode||e.mode!==n.facematch?.mode)&&(console.warn(\"Invalid facematch mode\"),t=false,o.facematch={...o.facematch,eq:{expected:n.facematch?.mode,received:e.mode,message:\"Invalid facematch mode\"}});}return {isCorrect:t,queryResultErrors:o}}static async checkCurrentDate(n,a,e,t){let o=new Date,c=new Date(o.getFullYear(),o.getMonth(),o.getDate(),0,0,0,0),m=getCurrentDateFromDisclosureProof(a),d=c.getTime()-m.getTime(),s=e?e*1e3:604800*1e3,l=true;return d>=s&&(console.warn(\"The date used to check the validity of the ID falls out of the validity period\"),l=false,t[n]||(t[n]={}),t[n].date={expected:`Difference: ${e} seconds`,received:`Difference: ${Math.round(d/1e3)} seconds`,message:\"The date used to check the validity of the ID falls out of the validity period\"}),{isCorrect:l,queryResultErrors:t}}static async checkPublicInputs(n,a,e,t,o,c){let m,d,s=true,l,T,E=new Date,A=new Date(E.getFullYear(),E.getMonth(),E.getDate(),0,0,0,0),i={},F=a.sort((y,r)=>{let f=[\"sig_check_dsc\",\"sig_check_id_data\",\"data_check_integrity\",\"disclose_bytes\",\"compare_age\",\"compare_birthdate\",\"compare_expiry\",\"exclusion_check_nationality\",\"inclusion_check_nationality\",\"exclusion_check_issuing_country\",\"inclusion_check_issuing_country\",\"bind\",\"exclusion_check_sanctions\",\"facematch\"],u=p=>{let b=p.name||\"\";return f.findIndex(C=>b.startsWith(C))};return u(y)-u(r)});for(let y of F){let r=getProofData(y.proof,getNumberOfPublicInputs(y.name));if(y.name?.startsWith(\"outer\")){let f=y.name?.startsWith(\"outer_evm\"),u=getCertificateRegistryRootFromOuterProof(r),{isCorrect:p,queryResultErrors:b}=await this.checkCertificateRegistryRoot(u.toString(16),i,true);s=s&&p,i={...i,...b};let C=getCircuitRegistryRootFromOuterProof(r),{isCorrect:x,queryResultErrors:w}=await this.checkCircuitRegistryRoot(C.toString(16),i);s=s&&x,i={...i,...w};let D=getCurrentDateFromOuterProof(r),I=A.getTime()-D.getTime(),Y=o?o*1e3:604800*1e3;I>=Y&&(console.warn(\"The date used to check the validity of the ID is older than the validity period\"),s=false,i.outer={...i.outer,date:{expected:`Difference: ${o} seconds`,received:`Difference: ${Math.round(I/1e3)} seconds`,message:\"The date used to check the validity of the ID is older than the validity period\"}});let S=getParamCommitmentsFromOuterProof(r),g=y.committedInputs,W=Object.keys(g||{});if(W.length!==S.length&&(console.warn(\"The proof does not verify all the requested conditions and information\"),s=false,i.outer={...i.outer,commitment:{expected:`Number of parameter commitments: ${S.length}`,received:`Number of disclosure proofs provided: ${W.length}`,message:\"The proof does not verify all the requested conditions and information\"}}),n&&getServiceScopeHash(n)!==getScopeFromOuterProof(r)&&(console.warn(\"The proof comes from a different domain than the one expected\"),s=false,i.outer={...i.outer,scope:{expected:`Scope: ${getServiceScopeHash(n).toString()}`,received:`Scope: ${getScopeFromOuterProof(r).toString()}`,message:\"The proof comes from a different domain than the one expected\"}}),c&&getScopeHash(c)!==getSubscopeFromOuterProof(r)&&(console.warn(\"The proof uses a different scope than the one expected\"),s=false,i.outer={...i.outer,scope:{expected:`Scope: ${getScopeHash(c).toString()}`,received:`Scope: ${getSubscopeFromOuterProof(r).toString()}`,message:\"The proof uses a different scope than the one expected\"}}),g?.compare_age||g?.compare_age_evm){let h=g?.compare_age??g?.compare_age_evm,_=f?await getAgeEVMParameterCommitment(h.minAge,h.maxAge):await getAgeParameterCommitment(h.minAge,h.maxAge);S.includes(_)||(console.warn(\"This proof does not verify the age\"),s=false,i.age={...i.age,commitment:{expected:`Age parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the age\"}});let{isCorrect:k,queryResultErrors:P}=this.checkAgePublicInputs(y,e,t);s=s&&k,i={...i,...P};}if(g?.compare_birthdate||g?.compare_birthdate_evm){let h=g?.compare_birthdate??g?.compare_birthdate_evm,_=f?await getDateEVMParameterCommitment(ProofType.BIRTHDATE,h.minDateTimestamp,h.maxDateTimestamp,0):await getDateParameterCommitment(ProofType.BIRTHDATE,h.minDateTimestamp,h.maxDateTimestamp,0);S.includes(_)||(console.warn(\"This proof does not verify the birthdate\"),s=false,i.birthdate={...i.birthdate,commitment:{expected:`Birthdate parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the birthdate\"}});let{isCorrect:k,queryResultErrors:P}=this.checkBirthdatePublicInputs(y,e,t);s=s&&k,i={...i,...P};}if(g?.compare_expiry||g?.compare_expiry_evm){let h=g?.compare_expiry??g?.compare_expiry_evm,_=f?await getDateEVMParameterCommitment(ProofType.EXPIRY_DATE,h.minDateTimestamp,h.maxDateTimestamp):await getDateParameterCommitment(ProofType.EXPIRY_DATE,h.minDateTimestamp,h.maxDateTimestamp);S.includes(_)||(console.warn(\"This proof does not verify the expiry date\"),s=false,i.expiry_date={...i.expiry_date,commitment:{expected:`Expiry date parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the expiry date\"}});let{isCorrect:k,queryResultErrors:P}=this.checkExpiryDatePublicInputs(y,e,t);s=s&&k,i={...i,...P};}if(g?.disclose_bytes||g?.disclose_bytes_evm){let h=g?.disclose_bytes??g?.disclose_bytes_evm,_=f?await getDiscloseEVMParameterCommitment(h.discloseMask,h.disclosedBytes):await getDiscloseParameterCommitment(h.discloseMask,h.disclosedBytes);S.includes(_)||(console.warn(\"This proof does not verify any of the data disclosed\"),s=false,i.disclose={...i.disclose,commitment:{expected:`Disclosure parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify any of the data disclosed\"}});let{isCorrect:k,queryResultErrors:P}=this.checkDiscloseBytesPublicInputs(y,e,t);s=s&&k,i={...i,...P};}if(g?.inclusion_check_nationality||g?.inclusion_check_nationality_evm){let h=g?.inclusion_check_nationality??g?.inclusion_check_nationality_evm,_=f?await getCountryEVMParameterCommitment(ProofType.NATIONALITY_INCLUSION,h.countries):await getCountryParameterCommitment(ProofType.NATIONALITY_INCLUSION,h.countries);S.includes(_)||(console.warn(\"This proof does not verify the inclusion of the nationality\"),s=false,i.nationality={...i.nationality,commitment:{expected:`Nationality parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the inclusion of the nationality\"}});let k=h.countries,{isCorrect:P,queryResultErrors:L}=this.checkNationalityInclusionPublicInputs(e,t,k);s=s&&P,i={...i,...L};}if(g?.inclusion_check_issuing_country||g?.inclusion_check_issuing_country_evm){let h=g?.inclusion_check_issuing_country??g?.inclusion_check_issuing_country_evm,_=f?await getCountryEVMParameterCommitment(ProofType.ISSUING_COUNTRY_INCLUSION,h.countries):await getCountryParameterCommitment(ProofType.ISSUING_COUNTRY_INCLUSION,h.countries);S.includes(_)||(console.warn(\"This proof does not verify the inclusion of the issuing country\"),s=false,i.issuing_country={...i.issuing_country,commitment:{expected:`Issuing country parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the inclusion of the issuing country\"}});let k=h.countries,{isCorrect:P,queryResultErrors:L}=this.checkIssuingCountryInclusionPublicInputs(e,t,k);s=s&&P,i={...i,...L};}if(g?.exclusion_check_nationality||g?.exclusion_check_nationality_evm){let h=g?.exclusion_check_nationality??g?.exclusion_check_nationality_evm,_=f?await getCountryEVMParameterCommitment(ProofType.NATIONALITY_EXCLUSION,h.countries):await getCountryParameterCommitment(ProofType.NATIONALITY_EXCLUSION,h.countries);S.includes(_)||(console.warn(\"This proof does not verify the exclusion of the nationality\"),s=false,i.nationality={...i.nationality,commitment:{expected:`Nationality parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the exclusion of the nationality\"}});let k=h.countries,{isCorrect:P,queryResultErrors:L}=this.checkNationalityExclusionPublicInputs(e,t,k);s=s&&P,i={...i,...L};}if(g?.exclusion_check_issuing_country||g?.exclusion_check_issuing_country_evm){let h=g?.exclusion_check_issuing_country??g?.exclusion_check_issuing_country_evm,_=f?await getCountryEVMParameterCommitment(ProofType.ISSUING_COUNTRY_EXCLUSION,h.countries):await getCountryParameterCommitment(ProofType.ISSUING_COUNTRY_EXCLUSION,h.countries);S.includes(_)||(console.warn(\"This proof does not verify the exclusion of the issuing country\"),s=false,i.issuing_country={...i.issuing_country,commitment:{expected:`Issuing country parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the exclusion of the issuing country\"}});let k=h.countries,{isCorrect:P,queryResultErrors:L}=this.checkIssuingCountryExclusionPublicInputs(e,t,k);s=s&&P,i={...i,...L};}if(g?.bind||g?.bind_evm){let h=g?.bind??g?.bind_evm,_=f?await getBindEVMParameterCommitment(formatBoundData(h.data)):await getBindParameterCommitment(formatBoundData(h.data));S.includes(_)||(console.warn(\"This proof does not verify the bound data\"),s=false,i.bind={...i.bind,commitment:{expected:`Bind parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the bound data\"}});let{isCorrect:k,queryResultErrors:P}=this.checkBindPublicInputs(e,t,h.data);s=s&&k,i={...i,...P};}if(g?.exclusion_check_sanctions||g?.exclusion_check_sanctions_evm){let h=await SanctionsBuilder.create(),_=g?.exclusion_check_sanctions??g?.exclusion_check_sanctions_evm,k=f?await h.getSanctionsEvmParameterCommitment(_.isStrict):await h.getSanctionsParameterCommitment(_.isStrict);S.includes(k)||(console.warn(\"This proof does not verify the exclusion from the sanction lists\"),s=false,i.sanctions={...i.sanctions,commitment:{expected:`Sanctions parameter commitment: ${k.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify the exclusion from the sanction lists\"}});let{isCorrect:P,queryResultErrors:L}=await this.checkSanctionsExclusionPublicInputs(e,t,_,h);s=s&&P,i={...i,...L};}if(g?.facematch||g?.facematch_evm){let h=g?.facematch??g?.facematch_evm,_=f?await getFacematchEvmParameterCommitment(BigInt(h.rootKeyLeaf),h.environment===\"development\"?0n:1n,BigInt(h.appIdHash),h.mode===\"regular\"?1n:2n):await getFacematchParameterCommitment(BigInt(h.rootKeyLeaf),h.environment===\"development\"?0n:1n,BigInt(h.appIdHash),h.mode===\"regular\"?1n:2n);S.includes(_)||(console.warn(\"This proof does not verify FaceMatch\"),s=false,i.facematch={...i.facematch,commitment:{expected:`Facematch parameter commitment: ${_.toString()}`,received:`Parameter commitments included: ${S.join(\", \")}`,message:\"This proof does not verify FaceMatch\"}});let{isCorrect:k,queryResultErrors:P}=await this.checkFacematchPublicInputs(e,t,h);s=s&&k,i={...i,...P};}l=getNullifierFromOuterProof(r).toString(10),T=getNullifierTypeFromOuterProof(r);}else if(y.name?.startsWith(\"sig_check_dsc\")){d=getCommitmentFromDSCProof(r);let f=getMerkleRootFromDSCProof(r),{isCorrect:u,queryResultErrors:p}=await this.checkCertificateRegistryRoot(f.toString(16),i,false);s=s&&u,i={...i,...p};}else if(y.name?.startsWith(\"sig_check_id_data\"))m=getCommitmentInFromIDDataProof(r),m!==d&&(console.warn(\"Failed to check the link between the certificate signature and ID signature\"),s=false,i.sig_check_id_data={...i.sig_check_id_data,commitment:{expected:`Commitment: ${d?.toString()||\"undefined\"}`,received:`Commitment: ${m?.toString()||\"undefined\"}`,message:\"Failed to check the link between the certificate signature and ID signature\"}}),d=getCommitmentOutFromIDDataProof(r);else if(y.name?.startsWith(\"data_check_integrity\"))m=getCommitmentInFromIntegrityProof(r),m!==d&&(console.warn(\"Failed to check the link between the ID signature and the data signed\"),s=false,i.data_check_integrity={...i.data_check_integrity,commitment:{expected:`Commitment: ${d?.toString()||\"undefined\"}`,received:`Commitment: ${m?.toString()||\"undefined\"}`,message:\"Failed to check the link between the ID signature and the data signed\"}}),d=getCommitmentOutFromIntegrityProof(r);else if(y.name===\"disclose_bytes\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the data to disclose\"),s=false,i.disclose={...i.disclose,commitment:{expected:`Commitment: ${d?.toString()||\"undefined\"}`,received:`Commitment: ${m?.toString()||\"undefined\"}`,message:\"Failed to check the link between the validity of the ID and the data to disclose\"}});let f=getParameterCommitmentFromDisclosureProof(r),u=await getDiscloseParameterCommitment((y.committedInputs?.disclose_bytes).discloseMask,(y.committedInputs?.disclose_bytes).disclosedBytes);f!==u&&(console.warn(\"The disclosed data does not match the data committed by the proof\"),s=false,i.disclose={...i.disclose,commitment:{expected:`Commitment: ${u}`,received:`Commitment: ${f}`,message:\"The disclosed data does not match the data committed by the proof\"}});let{isCorrect:p,queryResultErrors:b}=this.checkScopeFromDisclosureProof(n,r,i,\"disclose\",c);s=s&&p,i={...i,...b};let{isCorrect:C,queryResultErrors:x}=this.checkDiscloseBytesPublicInputs(y,e,t);s=s&&C&&p,i={...i,...x,...b};let{isCorrect:w,queryResultErrors:D}=await this.checkCurrentDate(\"disclose\",r,o??604800,i);s=s&&w,i={...i,...D},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"compare_age\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the age derived from it\"),s=false,i.age={...i.age,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the age derived from it\"}});let f=getParameterCommitmentFromDisclosureProof(r),u=y.committedInputs?.compare_age,p=await getAgeParameterCommitment(u.minAge,u.maxAge);f!==p&&(console.warn(\"The conditions for the age check do not match the conditions checked by the proof\"),s=false,i.age={...i.age,commitment:{expected:`Commitment: ${p}`,received:`Commitment: ${f}`,message:\"The conditions for the age check do not match the conditions checked by the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"age\",c),{isCorrect:x,queryResultErrors:w}=this.checkAgePublicInputs(y,e,t);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"age\",r,o??604800,i);s=s&&D,i={...i,...I},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"compare_birthdate\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the birthdate derived from it\"),s=false,i.birthdate={...i.birthdate,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the birthdate derived from it\"}});let f=getParameterCommitmentFromDisclosureProof(r),u=y.committedInputs?.compare_birthdate,p=await getDateParameterCommitment(ProofType.BIRTHDATE,u.minDateTimestamp,u.maxDateTimestamp,0);f!==p&&(console.warn(\"The conditions for the birthdate check do not match the conditions checked by the proof\"),s=false,i.birthdate={...i.birthdate,commitment:{expected:`Commitment: ${p}`,received:`Commitment: ${f}`,message:\"The conditions for the birthdate check do not match the conditions checked by the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"birthdate\",c),{isCorrect:x,queryResultErrors:w}=this.checkBirthdatePublicInputs(y,e,t);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"birthdate\",r,o??604800,i);s=s&&D,i={...i,...I},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"compare_expiry\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and its expiry date\"),s=false,i.expiry_date={...i.expiry_date,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and its expiry date\"}});let f=getParameterCommitmentFromDisclosureProof(r),u=y.committedInputs?.compare_expiry,p=await getDateParameterCommitment(ProofType.EXPIRY_DATE,u.minDateTimestamp,u.maxDateTimestamp);f!==p&&(console.warn(\"The conditions for the expiry date check do not match the conditions checked by the proof\"),s=false,i.expiry_date={...i.expiry_date,commitment:{expected:`Commitment: ${p}`,received:`Commitment: ${f}`,message:\"The conditions for the expiry date check do not match the conditions checked by the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"expiry_date\",c),{isCorrect:x,queryResultErrors:w}=this.checkExpiryDatePublicInputs(y,e,t);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"expiry_date\",r,o??604800,i);s=s&&D,i={...i,...I},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"exclusion_check_nationality\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the nationality exclusion check\"),s=false,i.nationality={...i.nationality,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the nationality exclusion check\"}});let f=(y.committedInputs?.exclusion_check_nationality).countries,u=getParameterCommitmentFromDisclosureProof(r),p=await getCountryParameterCommitment(ProofType.NATIONALITY_EXCLUSION,f,true);u!==p&&(console.warn(\"The committed country list for the exclusion check does not match the one from the proof\"),s=false,i.nationality={...i.nationality,commitment:{expected:`Commitment: ${p}`,received:`Commitment: ${u}`,message:\"The committed country list for the exclusion check does not match the one from the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"nationality\",c),{isCorrect:x,queryResultErrors:w}=this.checkNationalityExclusionPublicInputs(e,t,f);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"nationality\",r,o??604800,i);s=s&&D,i={...i,...I},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"exclusion_check_issuing_country\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the issuing country exclusion check\"),s=false,i.issuing_country={...i.issuing_country,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the issuing country exclusion check\"}});let f=(y.committedInputs?.exclusion_check_issuing_country).countries,u=getParameterCommitmentFromDisclosureProof(r),p=await getCountryParameterCommitment(ProofType.ISSUING_COUNTRY_EXCLUSION,f,true);u!==p&&(console.warn(\"The committed country list for the issuing country exclusion check does not match the one from the proof\"),s=false,i.issuing_country={...i.issuing_country,commitment:{expected:`Commitment: ${p}`,received:`Commitment: ${u}`,message:\"The committed country list for the issuing country exclusion check does not match the one from the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"issuing_country\",c),{isCorrect:x,queryResultErrors:w}=this.checkIssuingCountryExclusionPublicInputs(e,t,f);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"issuing_country\",r,o??604800,i);s=s&&D,i={...i,...I},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"inclusion_check_nationality\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the nationality inclusion check\"),s=false,i.nationality={...i.nationality,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the nationality inclusion check\"}});let f=(y.committedInputs?.inclusion_check_nationality).countries,u=getParameterCommitmentFromDisclosureProof(r),p=await getCountryParameterCommitment(ProofType.NATIONALITY_INCLUSION,f,false);u!==p&&(console.warn(\"The committed country list for the nationality inclusion check does not match the one from the proof\"),s=false,i.nationality={...i.nationality,commitment:{expected:`Commitment: ${p}`,received:`Commitment: ${u}`,message:\"The committed country list for the nationality inclusion check does not match the one from the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"nationality\",c),{isCorrect:x,queryResultErrors:w}=this.checkNationalityInclusionPublicInputs(e,t,f);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"nationality\",r,o??604800,i);s=s&&D,i={...i,...I},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"inclusion_check_issuing_country\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the issuing country inclusion check\"),s=false,i.issuing_country={...i.issuing_country,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the issuing country inclusion check\"}});let f=(y.committedInputs?.inclusion_check_issuing_country).countries,u=getParameterCommitmentFromDisclosureProof(r),p=await getCountryParameterCommitment(ProofType.ISSUING_COUNTRY_INCLUSION,f,false);u!==p&&(console.warn(\"The committed country list for the issuing country inclusion check does not match the one from the proof\"),s=false,i.issuing_country={...i.issuing_country,commitment:{expected:`Commitment: ${p}`,received:`Commitment: ${u}`,message:\"The committed country list for the issuing country inclusion check does not match the one from the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"issuing_country\",c),{isCorrect:x,queryResultErrors:w}=this.checkIssuingCountryInclusionPublicInputs(e,t,f);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"issuing_country\",r,o??604800,i);s=s&&D,i={...i,...I},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"bind\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the bound data\"),s=false,i.bind={...i.bind,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the bound data\"}});let f=y.committedInputs?.bind,u=getParameterCommitmentFromDisclosureProof(r),p=await getBindParameterCommitment(formatBoundData(f.data));u!==p&&(console.warn(\"The bound data does not match the one from the proof\"),s=false,i.bind={...i.bind,commitment:{expected:`Commitment: ${p}`,received:`Commitment: ${u}`,message:\"The bound data does not match the one from the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"bind\",c),{isCorrect:x,queryResultErrors:w}=this.checkBindPublicInputs(e,t,f.data);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"bind\",r,o??604800,i);s=s&&D,i={...i,...I},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name===\"exclusion_check_sanctions\"){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the sanctions exclusion check\"),s=false,i.sanctions={...i.sanctions,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the sanctions exclusion check\"}});let f=await SanctionsBuilder.create(),u=y.committedInputs?.exclusion_check_sanctions,p=await f.getSanctionsParameterCommitment(u.isStrict),b=getParameterCommitmentFromDisclosureProof(r);b!==p&&(console.warn(\"The sanction lists check against do not match the sanction lists from the proof\"),s=false,i.sanctions={...i.sanctions,commitment:{expected:`Commitment: ${p.toString()}`,received:`Commitment: ${b.toString()}`,message:\"The sanction lists check against do not match the sanction lists from the proof\"}});let{isCorrect:C,queryResultErrors:x}=this.checkScopeFromDisclosureProof(n,r,i,\"sanctions\",c),{isCorrect:w,queryResultErrors:D}=await this.checkSanctionsExclusionPublicInputs(e,t,u,f);s=s&&w&&C,i={...i,...D,...x};let{isCorrect:I,queryResultErrors:Y}=await this.checkCurrentDate(\"sanctions\",r,o??604800,i);s=s&&I,i={...i,...Y},l=getNullifierFromDisclosureProof(r).toString(10),T=getNullifierTypeFromDisclosureProof(r);}else if(y.name?.startsWith(\"facematch\")&&!y.name?.endsWith(\"_evm\")){m=getCommitmentInFromDisclosureProof(r),m!==d&&(console.warn(\"Failed to check the link between the validity of the ID and the facematch check\"),s=false,i.facematch={...i.facematch,commitment:{expected:`Commitment: ${d}`,received:`Commitment: ${m}`,message:\"Failed to check the link between the validity of the ID and the facematch check\"}});let f=y.committedInputs?.facematch,u=getParameterCommitmentFromDisclosureProof(r),p=await getFacematchParameterCommitment(BigInt(f.rootKeyLeaf),f.environment===\"development\"?0n:1n,BigInt(f.appIdHash),f.mode===\"regular\"?1n:2n);u!==p&&(console.warn(\"The FaceMatch verification does not match the ones from the proof\"),s=false,i.facematch={...i.facematch,commitment:{expected:`Commitment: ${p.toString()}`,received:`Commitment: ${u.toString()}`,message:\"The FaceMatch verification does not match the ones from the proof\"}});let{isCorrect:b,queryResultErrors:C}=this.checkScopeFromDisclosureProof(n,r,i,\"facematch\",c),{isCorrect:x,queryResultErrors:w}=await this.checkFacematchPublicInputs(e,t,f);s=s&&x&&b,i={...i,...w,...C};let{isCorrect:D,queryResultErrors:I}=await this.checkCurrentDate(\"facematch\",r,o??604800,i);s=s&&D,i={...i,...I};}}return {isCorrect:s,uniqueIdentifier:l,uniqueIdentifierType:T,queryResultErrors:i}}};var we={abi:[{type:\"constructor\",inputs:[{name:\"_admin\",type:\"address\",internalType:\"address\"},{name:\"_guardian\",type:\"address\",internalType:\"address\"},{name:\"_rootRegistry\",type:\"address\",internalType:\"contract IRootRegistry\"}],stateMutability:\"nonpayable\"},{type:\"function\",name:\"addHelper\",inputs:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"},{name:\"newHelper\",type:\"address\",internalType:\"address\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"addSubVerifier\",inputs:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"},{name:\"subVerifier\",type:\"address\",internalType:\"contract ZKPassportSubVerifier\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"admin\",inputs:[],outputs:[{name:\"\",type:\"address\",internalType:\"address\"}],stateMutability:\"view\"},{type:\"function\",name:\"config\",inputs:[{name:\"key\",type:\"bytes32\",internalType:\"bytes32\"}],outputs:[{name:\"value\",type:\"bytes32\",internalType:\"bytes32\"}],stateMutability:\"view\"},{type:\"function\",name:\"getHelper\",inputs:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"}],outputs:[{name:\"\",type:\"address\",internalType:\"address\"}],stateMutability:\"view\"},{type:\"function\",name:\"getSubVerifier\",inputs:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"}],outputs:[{name:\"\",type:\"address\",internalType:\"address\"}],stateMutability:\"view\"},{type:\"function\",name:\"guardian\",inputs:[],outputs:[{name:\"\",type:\"address\",internalType:\"address\"}],stateMutability:\"view\"},{type:\"function\",name:\"helperCount\",inputs:[],outputs:[{name:\"\",type:\"uint256\",internalType:\"uint256\"}],stateMutability:\"view\"},{type:\"function\",name:\"helpers\",inputs:[{name:\"\",type:\"bytes32\",internalType:\"bytes32\"}],outputs:[{name:\"\",type:\"address\",internalType:\"contract ZKPassportHelper\"}],stateMutability:\"view\"},{type:\"function\",name:\"pause\",inputs:[],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"paused\",inputs:[],outputs:[{name:\"\",type:\"bool\",internalType:\"bool\"}],stateMutability:\"view\"},{type:\"function\",name:\"removeHelper\",inputs:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"removeSubVerifier\",inputs:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"rootRegistry\",inputs:[],outputs:[{name:\"\",type:\"address\",internalType:\"contract IRootRegistry\"}],stateMutability:\"view\"},{type:\"function\",name:\"setGuardian\",inputs:[{name:\"newGuardian\",type:\"address\",internalType:\"address\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"subverifierCount\",inputs:[],outputs:[{name:\"\",type:\"uint256\",internalType:\"uint256\"}],stateMutability:\"view\"},{type:\"function\",name:\"subverifiers\",inputs:[{name:\"\",type:\"bytes32\",internalType:\"bytes32\"}],outputs:[{name:\"\",type:\"address\",internalType:\"contract ZKPassportSubVerifier\"}],stateMutability:\"view\"},{type:\"function\",name:\"transferAdmin\",inputs:[{name:\"newAdmin\",type:\"address\",internalType:\"address\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"unpause\",inputs:[],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"updateConfig\",inputs:[{name:\"key\",type:\"bytes32\",internalType:\"bytes32\"},{name:\"value\",type:\"bytes32\",internalType:\"bytes32\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"updateHelper\",inputs:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"},{name:\"newHelper\",type:\"address\",internalType:\"address\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"updateSubVerifier\",inputs:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"},{name:\"newSubVerifier\",type:\"address\",internalType:\"address\"}],outputs:[],stateMutability:\"nonpayable\"},{type:\"function\",name:\"verify\",inputs:[{name:\"params\",type:\"tuple\",internalType:\"struct ProofVerificationParams\",components:[{name:\"version\",type:\"bytes32\",internalType:\"bytes32\"},{name:\"proofVerificationData\",type:\"tuple\",internalType:\"struct ProofVerificationData\",components:[{name:\"vkeyHash\",type:\"bytes32\",internalType:\"bytes32\"},{name:\"proof\",type:\"bytes\",internalType:\"bytes\"},{name:\"publicInputs\",type:\"bytes32[]\",internalType:\"bytes32[]\"}]},{name:\"committedInputs\",type:\"bytes\",internalType:\"bytes\"},{name:\"serviceConfig\",type:\"tuple\",internalType:\"struct ServiceConfig\",components:[{name:\"validityPeriodInSeconds\",type:\"uint256\",internalType:\"uint256\"},{name:\"domain\",type:\"string\",internalType:\"string\"},{name:\"scope\",type:\"string\",internalType:\"string\"},{name:\"devMode\",type:\"bool\",internalType:\"bool\"}]}]}],outputs:[{name:\"valid\",type:\"bool\",internalType:\"bool\"},{name:\"uniqueIdentifier\",type:\"bytes32\",internalType:\"bytes32\"},{name:\"helper\",type:\"address\",internalType:\"contract ZKPassportHelper\"}],stateMutability:\"view\"},{type:\"event\",name:\"AdminUpdated\",inputs:[{name:\"oldAdmin\",type:\"address\",indexed:true,internalType:\"address\"},{name:\"newAdmin\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"ConfigUpdated\",inputs:[{name:\"key\",type:\"bytes32\",indexed:true,internalType:\"bytes32\"},{name:\"oldValue\",type:\"bytes32\",indexed:false,internalType:\"bytes32\"},{name:\"newValue\",type:\"bytes32\",indexed:false,internalType:\"bytes32\"}],anonymous:false},{type:\"event\",name:\"GuardianUpdated\",inputs:[{name:\"oldGuardian\",type:\"address\",indexed:true,internalType:\"address\"},{name:\"newGuardian\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"HelperAdded\",inputs:[{name:\"version\",type:\"bytes32\",indexed:true,internalType:\"bytes32\"},{name:\"helper\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"HelperRemoved\",inputs:[{name:\"version\",type:\"bytes32\",indexed:true,internalType:\"bytes32\"},{name:\"helper\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"HelperUpdated\",inputs:[{name:\"version\",type:\"bytes32\",indexed:true,internalType:\"bytes32\"},{name:\"oldHelper\",type:\"address\",indexed:true,internalType:\"address\"},{name:\"newHelper\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"PausedStatusChanged\",inputs:[{name:\"paused\",type:\"bool\",indexed:false,internalType:\"bool\"}],anonymous:false},{type:\"event\",name:\"RootRegistryUpdated\",inputs:[{name:\"oldRootRegistry\",type:\"address\",indexed:true,internalType:\"address\"},{name:\"newRootRegistry\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"RootVerifierDeployed\",inputs:[{name:\"admin\",type:\"address\",indexed:false,internalType:\"address\"},{name:\"guardian\",type:\"address\",indexed:false,internalType:\"address\"},{name:\"rootRegistry\",type:\"address\",indexed:false,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"SubVerifierAdded\",inputs:[{name:\"version\",type:\"bytes32\",indexed:true,internalType:\"bytes32\"},{name:\"subVerifier\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"SubVerifierRemoved\",inputs:[{name:\"version\",type:\"bytes32\",indexed:true,internalType:\"bytes32\"},{name:\"subVerifier\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false},{type:\"event\",name:\"SubVerifierUpdated\",inputs:[{name:\"version\",type:\"bytes32\",indexed:true,internalType:\"bytes32\"},{name:\"oldSubVerifier\",type:\"address\",indexed:true,internalType:\"address\"},{name:\"newSubVerifier\",type:\"address\",indexed:true,internalType:\"address\"}],anonymous:false}]};var X=class{static getDetails(){return {...{functionName:\"verify\",abi:we.abi},address:\"0x1D000001000EFD9a6371f4d90bB8920D5431c0D8\"}}static getParameters({proof:n,validityPeriodInSeconds:a=604800,domain:e,scope:t,devMode:o=false}){if(!n.name?.startsWith(\"outer_evm\"))throw new Error(\"This proof cannot be verified on an EVM chain. Please make sure to use the `compressed-evm` mode.\");let c=getProofData(n.proof,getNumberOfPublicInputs(n.name)),m=[],d=[];for(let y in n.committedInputs){let r=getCommittedInputCount(y),f=y;m.push({circuitName:f,count:r});let u=\"\";if(f===\"inclusion_check_issuing_country_evm\"||f===\"inclusion_check_nationality_evm\"||f===\"exclusion_check_issuing_country_evm\"||f===\"exclusion_check_nationality_evm\"){let b=n.committedInputs[f].countries;(f===\"exclusion_check_issuing_country_evm\"||f===\"exclusion_check_nationality_evm\")&&b.sort((x,w)=>x.localeCompare(w));let C=(()=>{switch(f){case \"exclusion_check_issuing_country_evm\":return ProofType.ISSUING_COUNTRY_EXCLUSION;case \"exclusion_check_nationality_evm\":return ProofType.NATIONALITY_EXCLUSION;case \"inclusion_check_issuing_country_evm\":return ProofType.ISSUING_COUNTRY_INCLUSION;case \"inclusion_check_nationality_evm\":return ProofType.NATIONALITY_INCLUSION}})();u=C.toString(16).padStart(2,\"0\")+ProofTypeLength[C].evm.toString(16).padStart(4,\"0\")+rightPadArrayWithZeros(b.map(x=>Array.from(new TextEncoder().encode(x))).flat(),600).map(x=>x.toString(16).padStart(2,\"0\")).join(\"\");}else if(f===\"compare_age_evm\"){let p=n.committedInputs[f];u=ProofType.AGE.toString(16).padStart(2,\"0\")+ProofTypeLength[ProofType.AGE].evm.toString(16).padStart(4,\"0\")+p.minAge.toString(16).padStart(2,\"0\")+p.maxAge.toString(16).padStart(2,\"0\");}else if(f===\"compare_birthdate_evm\"){let p=n.committedInputs[f],b=Array.from(numberToBytesBE(p.minDateTimestamp,8)),C=Array.from(numberToBytesBE(p.maxDateTimestamp,8));u=ProofType.BIRTHDATE.toString(16).padStart(2,\"0\")+ProofTypeLength[ProofType.BIRTHDATE].evm.toString(16).padStart(4,\"0\")+b.map(x=>x.toString(16).padStart(2,\"0\")).join(\"\")+C.map(x=>x.toString(16).padStart(2,\"0\")).join(\"\");}else if(f===\"compare_expiry_evm\"){let p=n.committedInputs[f],b=Array.from(numberToBytesBE(p.minDateTimestamp,8)),C=Array.from(numberToBytesBE(p.maxDateTimestamp,8));u=ProofType.EXPIRY_DATE.toString(16).padStart(2,\"0\")+ProofTypeLength[ProofType.EXPIRY_DATE].evm.toString(16).padStart(4,\"0\")+b.map(x=>x.toString(16).padStart(2,\"0\")).join(\"\")+C.map(x=>x.toString(16).padStart(2,\"0\")).join(\"\");}else if(f===\"disclose_bytes_evm\"){let p=n.committedInputs[f];u=ProofType.DISCLOSE.toString(16).padStart(2,\"0\")+ProofTypeLength[ProofType.DISCLOSE].evm.toString(16).padStart(4,\"0\")+p.discloseMask.map(b=>b.toString(16).padStart(2,\"0\")).join(\"\")+p.disclosedBytes.map(b=>b.toString(16).padStart(2,\"0\")).join(\"\");}else if(f===\"bind_evm\"){let p=n.committedInputs[f];u=ProofType.BIND.toString(16).padStart(2,\"0\")+ProofTypeLength[ProofType.BIND].evm.toString(16).padStart(4,\"0\")+rightPadArrayWithZeros(formatBoundData(p.data),509).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\");}else if(f===\"exclusion_check_sanctions_evm\"){let p=n.committedInputs[f];u+=ProofType.SANCTIONS_EXCLUSION.toString(16).padStart(2,\"0\"),u+=ProofTypeLength[ProofType.SANCTIONS_EXCLUSION].evm.toString(16).padStart(4,\"0\"),u+=Array.from(numberToBytesBE(BigInt(p.rootHash),32)).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\"),u+=p.isStrict?\"01\":\"00\";}else if(f.startsWith(\"facematch\")&&f.endsWith(\"_evm\")){let p=n.committedInputs[f];u+=ProofType.FACEMATCH.toString(16).padStart(2,\"0\"),u+=ProofTypeLength[ProofType.FACEMATCH].evm.toString(16).padStart(4,\"0\"),u+=Array.from(numberToBytesBE(BigInt(p.rootKeyLeaf),32)).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\"),u+=p.environment===\"development\"?\"00\":\"01\",u+=Array.from(numberToBytesBE(BigInt(p.appIdHash),32)).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\"),u+=Array.from(numberToBytesBE(BigInt(p.integrityPubkeyHash),32)).map(b=>b.toString(16).padStart(2,\"0\")).join(\"\"),u+=p.mode===\"regular\"?\"01\":\"02\";}else throw new Error(`Unsupported circuit for EVM verification: ${f}`);d.push({circuitName:f,inputs:u});}let s=getParamCommitmentsFromOuterProof(c).map(y=>y.toString(16).padStart(64,\"0\")),l=\"\";for(let y of s){let r=d.find(f=>{let u=sha256(hexToBytes(f.inputs)),p=new Uint8Array(u.length);for(let b=0;b<u.length-1;b++)p[b+1]=u[b];return p[0]=0,bytesToHex(p)===y.replace(\"0x\",\"\")});if(r){let f=m.find(u=>u.circuitName===r.circuitName)?.count;if(f)l+=r.inputs;else throw new Error(`Unknown circuit name: ${r.circuitName}`)}else throw new Error(`Invalid commitment: ${y}`)}let E=n.version?.split(\".\").map(y=>Number(y));if(!E||E.length!==3)throw new Error(\"Invalid version format\");let A=new Uint8Array([...numberToBytesBE(E[0],2),...numberToBytesBE(E[1],2),...numberToBytesBE(E[2],2)]);return {version:`0x${bytesToHex(A).padEnd(64,\"0\")}`,proofVerificationData:{vkeyHash:`0x${n.vkeyHash.replace(\"0x\",\"\").padStart(64,\"0\")}`,proof:`0x${c.proof.join(\"\")}`,publicInputs:c.publicInputs},committedInputs:`0x${l}`,serviceConfig:{validityPeriodInSeconds:a,domain:e,scope:t??\"\",devMode:o}}}};typeof globalThis.Buffer>\"u\"&&(globalThis.Buffer=Buffer,typeof window<\"u\"&&(window.Buffer=Buffer));registerLocale(bt);function fe(M){if(M===\"Zero Knowledge Republic\")return \"ZKR\";let n;return n=getAlpha3Code(M,\"en\")||M||\"ZKR\",n}function ne(M,n,a,e,t){t[e][n]={...t[e][n],[M]:a};}function gt(M,n,a,e){e[a][M]={...e[a][M],range:n};}function me(M,n,a,e,t){t[e][n]={...t[e][n],[M]:a};}var Pe=class{constructor(n){this.topicToConfig={};this.topicToLocalConfig={};this.topicToPublicKey={};this.topicToBridge={};this.topicToRequestReceived={};this.topicToService={};this.topicToProofs={};this.topicToFailedProofCount={};this.topicToResults={};this.onRequestReceivedCallbacks={};this.onGeneratingProofCallbacks={};this.onBridgeConnectCallbacks={};this.onProofGeneratedCallbacks={};this.onResultCallbacks={};this.onRejectCallbacks={};this.onErrorCallbacks={};if(!n&&typeof window>\"u\")throw new Error(\"Domain argument is required in Node.js environment\");this.domain=this.normalizeDomain(n||window.location.hostname);}normalizeDomain(n){return n.trim().replace(/^https?:\\/\\//,\"\").replace(/\\/[^/]*$/,\"\").replace(/:[0-9]+/,\"\").replace(/\\?.*$/,\"\").replace(/#.*$/,\"\").toLowerCase()}async handleResult(n){let a=this.topicToResults[n];delete this.topicToResults[n];let{uniqueIdentifier:e,verified:t,queryResultErrors:o}=await this.verify({proofs:this.topicToProofs[n],originalQuery:this.topicToConfig[n],queryResult:a,validity:this.topicToLocalConfig[n]?.validity,scope:this.topicToService[n]?.scope,devMode:this.topicToLocalConfig[n]?.devMode});delete this.topicToProofs[n];let c=this.topicToFailedProofCount[n]>0;await Promise.all(this.onResultCallbacks[n].map(m=>m({uniqueIdentifier:c?void 0:e,verified:c?false:t,result:a,queryResultErrors:o}))),delete this.topicToFailedProofCount[n];}async handleEncryptedMessage(n,a){if(a.method===\"accept\")await Promise.all(this.onGeneratingProofCallbacks[n].map(e=>e(n)));else if(a.method===\"reject\")await Promise.all(this.onRejectCallbacks[n].map(e=>e()));else if(a.method===\"proof\")this.topicToProofs[n].push(a.params),await Promise.all(this.onProofGeneratedCallbacks[n].map(e=>e(a.params))),this.topicToResults[n]&&a.params.total===this.topicToProofs[n].length+this.topicToFailedProofCount[n]&&await this.handleResult(n);else if(a.method===\"done\")this.topicToResults[n]=formatQueryResultDates(a.params),this.topicToProofs[n].length>0&&this.topicToProofs[n].length+this.topicToFailedProofCount[n]===this.topicToProofs[n][0].total&&await this.handleResult(n);else if(a.method===\"error\"){let e=a.params.error;e&&e===\"This ID is not supported yet\"?this.topicToResults[n]&&await this.handleResult(n):e&&e.startsWith(\"Cannot generate proof\")&&(this.topicToFailedProofCount[n]+=1,this.topicToResults[n]&&this.topicToProofs[n].length>0&&this.topicToProofs[n].length+this.topicToFailedProofCount[n]===this.topicToProofs[n][0].total&&await this.handleResult(n)),await Promise.all(this.onErrorCallbacks[n].map(t=>t(e)));}}getZkPassportRequest(n){return {eq:(a,e)=>((a===\"issuing_country\"||a===\"nationality\")&&(e=fe(e)),me(\"eq\",a,e,n,this.topicToConfig),this.getZkPassportRequest(n)),gte:(a,e)=>{if(ne(\"gte\",a,e,n,this.topicToConfig),a===\"age\"&&(e<1||e>=100))throw new Error(\"Age must be between 1 and 99 (inclusive)\");return this.getZkPassportRequest(n)},gt:(a,e)=>(ne(\"gt\",a,e,n,this.topicToConfig),this.getZkPassportRequest(n)),lte:(a,e)=>(ne(\"lte\",a,e,n,this.topicToConfig),this.getZkPassportRequest(n)),lt:(a,e)=>(ne(\"lt\",a,e,n,this.topicToConfig),this.getZkPassportRequest(n)),range:(a,e,t)=>(gt(a,[e,t],n,this.topicToConfig),this.getZkPassportRequest(n)),in:(a,e)=>(e=e.map(t=>fe(t)),me(\"in\",a,e,n,this.topicToConfig),this.getZkPassportRequest(n)),out:(a,e)=>(e=e.map(t=>fe(t)),me(\"out\",a,e,n,this.topicToConfig),this.getZkPassportRequest(n)),disclose:a=>(this.topicToConfig[n][a]={...this.topicToConfig[n][a],disclose:true},this.getZkPassportRequest(n)),bind:(a,e)=>(this.topicToConfig[n].bind={...this.topicToConfig[n].bind,[a]:e},this.getZkPassportRequest(n)),sanctions:(a=\"all\",e=\"all\",t={strict:false})=>(this.topicToConfig[n].sanctions={...this.topicToConfig[n].sanctions,countries:a,lists:e,strict:t.strict??false},this.getZkPassportRequest(n)),facematch:(a=\"regular\")=>(this.topicToConfig[n].facematch={mode:a},this.getZkPassportRequest(n)),done:(()=>{if(this.topicToFailedProofCount[n]=0,n===\"offline-query\"){let a=this.topicToConfig[n];return delete this.topicToConfig[n],{query:a}}return {url:this._getUrl(n),query:this.topicToConfig[n],requestId:n,onRequestReceived:a=>this.onRequestReceivedCallbacks[n].push(a),onGeneratingProof:a=>this.onGeneratingProofCallbacks[n].push(a),onBridgeConnect:a=>this.onBridgeConnectCallbacks[n].push(a),onProofGenerated:a=>this.onProofGeneratedCallbacks[n].push(a),onResult:a=>this.onResultCallbacks[n].push(a),onReject:a=>this.onRejectCallbacks[n].push(a),onError:a=>this.onErrorCallbacks[n].push(a),isBridgeConnected:()=>this.topicToBridge[n].isBridgeConnected(),requestReceived:()=>this.topicToRequestReceived[n]===true}})}}async request({name:n,logo:a,purpose:e,scope:t,projectID:o,mode:c,validity:m,devMode:d,topicOverride:s,keyPairOverride:l,cloudProverUrl:T,bridgeUrl:E}){if(s===\"offline-query\")throw new Error(\"You cannot override the topic with 'offline-query'\");let A=await Bridge.create({keyPair:l,bridgeId:s,bridgeUrl:E}),i=A.connection.getBridgeId();return this.topicToConfig[i]={},this.topicToService[i]={name:n,logo:a,purpose:e,scope:t,projectID:o,cloudProverUrl:T,bridgeUrl:E},this.topicToProofs[i]=[],this.topicToLocalConfig[i]={validity:m||604800,mode:c||\"fast\",devMode:d||false},this.onRequestReceivedCallbacks[i]=[],this.onGeneratingProofCallbacks[i]=[],this.onBridgeConnectCallbacks[i]=[],this.onProofGeneratedCallbacks[i]=[],this.onResultCallbacks[i]=[],this.onRejectCallbacks[i]=[],this.onErrorCallbacks[i]=[],this.topicToPublicKey[i]=A.getPublicKey(),this.topicToBridge[i]=A,A.onConnect(async F=>{await Promise.all(this.onBridgeConnectCallbacks[i].map(y=>y()));}),A.onSecureChannelEstablished(async()=>{await Promise.all(this.onRequestReceivedCallbacks[i].map(F=>F()));}),A.onSecureMessage(async F=>{this.handleEncryptedMessage(i,F);}),this.getZkPassportRequest(i)}createQuery(){return this.topicToConfig[\"offline-query\"]={},this.getZkPassportRequest(\"offline-query\")}async verify({proofs:n,originalQuery:a,queryResult:e,validity:t,scope:o,devMode:c=false,writingDirectory:m}){if(!n||n.length===0)return {uniqueIdentifier:void 0,uniqueIdentifierType:void 0,verified:false};let d=formatQueryResultDates(e),{UltraHonkVerifierBackend:s}=await import('@aztec/bb.js');typeof window>\"u\"&&!m&&(m=\"/tmp\");let l=new s({crsPath:m?m+\"/.bb-crs\":void 0}),T=true,E,A,i,{isCorrect:F,uniqueIdentifier:y,uniqueIdentifierType:r,queryResultErrors:f}=await ae.checkPublicInputs(this.domain,n,a,d,t,o);if(E=y,A=r,T=F,i=F?void 0:f,E&&A&&(A===NullifierType.SALTED_MOCK||A===NullifierType.NON_SALTED_MOCK)&&!c&&(T=false,console.warn(\"You are trying to verify a mock proof. This is only allowed in dev mode. To enable dev mode, set the `devMode` parameter to `true` in the request function parameters.\")),T){let u=new RegistryClient({chainId:11155111}),p=await u.getCircuitManifest(void 0,{version:n[0].version});for(let b of n){let C=b.name?.startsWith(\"outer_evm_\"),x=b.name,w=getProofData(b.proof,getNumberOfPublicInputs(x)),D=await u.getPackagedCircuit(x,p,{validate:!C});if(C)try{let{createPublicClient:I,http:Y}=await import('viem'),{sepolia:S}=await import('viem/chains'),{address:g,abi:W,functionName:h}=this.getSolidityVerifierDetails(),_=I({chain:S,transport:Y(\"https://ethereum-sepolia-rpc.publicnode.com\")}),k=this.getSolidityVerifierParameters({proof:b,domain:this.domain,scope:o,devMode:c}),P=await _.readContract({address:g,abi:W,functionName:h,args:[k]});T=Array.isArray(P)?!!P[0]:!1;}catch(I){console.warn(\"Error verifying proof\",I),T=false;}else {let I=Buffer.from(D.vkey,\"base64\");try{T=await l.verifyProof({proof:Buffer.from(w.proof.join(\"\"),\"hex\"),publicInputs:w.publicInputs,verificationKey:new Uint8Array(I)});}catch(Y){console.warn(\"Error verifying proof\",Y),T=false;}}if(!T)break}}return E=T?E:void 0,A=T?A:void 0,{uniqueIdentifier:E,uniqueIdentifierType:A,verified:T,queryResultErrors:i}}getSolidityVerifierDetails(){return X.getDetails()}getSolidityVerifierParameters({proof:n,validityPeriodInSeconds:a=604800,domain:e,scope:t,devMode:o=false}){return X.getParameters({proof:n,validityPeriodInSeconds:a,domain:e??this.domain,scope:t,devMode:o})}_getUrl(n){let a=Buffer.from(JSON.stringify(this.topicToConfig[n])).toString(\"base64\"),e=Buffer.from(JSON.stringify(this.topicToService[n])).toString(\"base64\"),t=this.topicToPublicKey[n],o=Math.floor(Date.now()/1e3)-this.topicToLocalConfig[n].validity;return `https://zkpassport.id/r?d=${this.domain}&t=${n}&c=${a}&s=${e}&p=${t}&m=${this.topicToLocalConfig[n].mode}&v=${le}&dt=${o}&dev=${this.topicToLocalConfig[n].devMode?\"1\":\"0\"}`}getUrl(n){return this._getUrl(n)}cancelRequest(n){this.topicToBridge[n]&&(this.topicToBridge[n].close(),delete this.topicToBridge[n]),delete this.topicToPublicKey[n],delete this.topicToConfig[n],delete this.topicToLocalConfig[n],delete this.topicToProofs[n],delete this.topicToFailedProofCount[n],delete this.topicToResults[n],this.onRequestReceivedCallbacks[n]=[],this.onGeneratingProofCallbacks[n]=[],this.onBridgeConnectCallbacks[n]=[],this.onProofGeneratedCallbacks[n]=[],this.onRejectCallbacks[n]=[],this.onErrorCallbacks[n]=[];}clearAllRequests(){for(let n in this.topicToBridge)this.cancelRequest(n);}};\nexport{Pe as ZKPassport};"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEAA,SAAQ,SAAS;CAEjB,IAAI,kBAAkB;EACpB;GACE,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GACD,MAAM;GACN,OAAO;GACR;EAAE;GAC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,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC/E;CACD;EACI,OAAO,qEAAqE;EAC5E,OAAO,qEAAqE;EAC5E,OAAO,qEAA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"}
|