{"version":3,"file":"iban-validation.build.js","sources":["../../../../root/.yarn/berry/cache/ibantools-npm-4.5.1-9d23806277-10c0.zip/node_modules/ibantools/jsnext/ibantools.js","iban-validation.ts"],"sourcesContent":["/*!\n * @license\n * Copyright Saša Jovanić\n * Licensed under the Mozilla Public License, Version 2.0 or the MIT license,\n * at your option. This file may not be copied, modified, or distributed\n * except according to those terms.\n * SPDX-FileCopyrightText: Saša Jovanić\n * SPDX-License-Identifier: MIT or MPL/2.0\n */\n/**\n * Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff\n * @package Documentation\n * @author Saša Jovanić\n * @module ibantools\n * @version 4.5.1\n * @license MIT or MPL-2.0\n * @preferred\n */\n'use strict';\n/**\n * Validate IBAN\n * ```\n * // returns true\n * ibantools.isValidIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * // returns false\n * ibantools.isValidIBAN(\"NL92ABNA0517164300\");\n * ```\n * ```\n * // returns true\n * ibantools.isValidIBAN('CH4431999123000889012');\n * ```\n * ```\n * // returns false\n * ibantools.isValidIBAN('CH4431999123000889012', { allowQRIBAN: false });\n * ```\n */\nexport function isValidIBAN(iban, validationOptions) {\n if (validationOptions === void 0) { validationOptions = { allowQRIBAN: true }; }\n if (iban === undefined || iban === null)\n return false;\n var reg = new RegExp('^[0-9]{2}$', '');\n var countryCode = iban.slice(0, 2);\n var spec = countrySpecs[countryCode];\n if (spec === undefined || spec.bban_regexp === undefined || spec.bban_regexp === null || spec.chars === undefined)\n return false;\n return (spec.chars === iban.length &&\n reg.test(iban.slice(2, 4)) &&\n isValidBBAN(iban.slice(4), countryCode) &&\n isValidIBANChecksum(iban) &&\n (validationOptions.allowQRIBAN || !isQRIBAN(iban)));\n}\n/**\n * IBAM validation errors\n */\nexport var ValidationErrorsIBAN;\n(function (ValidationErrorsIBAN) {\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"NoIBANProvided\"] = 0] = \"NoIBANProvided\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"NoIBANCountry\"] = 1] = \"NoIBANCountry\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongBBANLength\"] = 2] = \"WrongBBANLength\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongBBANFormat\"] = 3] = \"WrongBBANFormat\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"ChecksumNotNumber\"] = 4] = \"ChecksumNotNumber\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongIBANChecksum\"] = 5] = \"WrongIBANChecksum\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongAccountBankBranchChecksum\"] = 6] = \"WrongAccountBankBranchChecksum\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"QRIBANNotAllowed\"] = 7] = \"QRIBANNotAllowed\";\n})(ValidationErrorsIBAN || (ValidationErrorsIBAN = {}));\n/**\n * validateIBAN\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateIBAN('CH4431999123000889012');\n * ```\n * ```\n * // returns {errorCodes: [7], valid: false}\n * ibantools.validateIBAN('CH4431999123000889012', { allowQRIBAN: false });\n * ```\n */\nexport function validateIBAN(iban, validationOptions) {\n if (validationOptions === void 0) { validationOptions = { allowQRIBAN: true }; }\n var result = { errorCodes: [], valid: true };\n if (iban !== undefined && iban !== null && iban !== '') {\n var spec = countrySpecs[iban.slice(0, 2)];\n if (!spec || !(spec.bban_regexp || spec.chars)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.NoIBANCountry);\n return result;\n }\n if (spec && spec.chars && spec.chars !== iban.length) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongBBANLength);\n }\n if (spec && spec.bban_regexp && !checkFormatBBAN(iban.slice(4), spec.bban_regexp)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongBBANFormat);\n }\n if (spec && spec.bban_validation_func && !spec.bban_validation_func(iban.slice(4))) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongAccountBankBranchChecksum);\n }\n var reg = new RegExp('^[0-9]{2}$', '');\n if (!reg.test(iban.slice(2, 4))) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.ChecksumNotNumber);\n }\n if (result.errorCodes.indexOf(ValidationErrorsIBAN.WrongBBANFormat) !== -1 || !isValidIBANChecksum(iban)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongIBANChecksum);\n }\n if (!validationOptions.allowQRIBAN && isQRIBAN(iban)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.QRIBANNotAllowed);\n }\n }\n else {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.NoIBANProvided);\n }\n return result;\n}\n/**\n * Validate BBAN\n *\n * ```\n * // returns true\n * ibantools.isValidBBAN(\"ABNA0417164300\", \"NL\");\n * ```\n * ```\n * // returns false\n * ibantools.isValidBBAN(\"A7NA0517164300\", \"NL\");\n * ```\n */\nexport function isValidBBAN(bban, countryCode) {\n if (bban === undefined || bban === null || countryCode === undefined || countryCode === null)\n return false;\n var spec = countrySpecs[countryCode];\n if (spec === undefined ||\n spec === null ||\n spec.bban_regexp === undefined ||\n spec.bban_regexp === null ||\n spec.chars === undefined ||\n spec.chars === null)\n return false;\n if (spec.chars - 4 === bban.length && checkFormatBBAN(bban, spec.bban_regexp)) {\n if (spec.bban_validation_func) {\n return spec.bban_validation_func(bban.replace(/[\\s.]+/g, ''));\n }\n return true;\n }\n return false;\n}\n/**\n * Validate if country code is from a SEPA country\n * ```\n * // returns true\n * ibantools.isSEPACountry(\"NL\");\n * ```\n * ```\n * // returns false\n * ibantools.isSEPACountry(\"PK\");\n * ```\n */\nexport function isSEPACountry(countryCode) {\n if (countryCode !== undefined && countryCode !== null) {\n var spec = countrySpecs[countryCode];\n if (spec !== undefined) {\n return spec.SEPA ? spec.SEPA : false;\n }\n }\n return false;\n}\n/**\n * Check if IBAN is QR-IBAN\n * ```\n * // returns true\n * ibantools.isQRIBAN(\"CH4431999123000889012\");\n * ```\n * ```\n * // returns false\n * ibantools.isQRIBAN(\"NL92ABNA0517164300\");\n * ```\n */\nexport function isQRIBAN(iban) {\n if (iban === undefined || iban === null)\n return false;\n var countryCode = iban.slice(0, 2);\n var QRIBANCountries = ['LI', 'CH'];\n if (!QRIBANCountries.includes(countryCode))\n return false;\n var reg = new RegExp('^3[0-1]{1}[0-9]{3}$', '');\n return reg.test(iban.slice(4, 9));\n}\n/**\n * composeIBAN\n *\n * ```\n * // returns NL91ABNA0417164300\n * ibantools.composeIBAN({ countryCode: \"NL\", bban: \"ABNA0417164300\" });\n * ```\n */\nexport function composeIBAN(params) {\n var formated_bban = electronicFormatIBAN(params.bban) || '';\n if (params.countryCode === null || params.countryCode === undefined) {\n return null;\n }\n var spec = countrySpecs[params.countryCode];\n if (formated_bban !== '' &&\n spec !== undefined &&\n spec.chars &&\n spec.chars !== null &&\n spec.chars === formated_bban.length + 4 &&\n spec.bban_regexp &&\n spec.bban_regexp !== null &&\n checkFormatBBAN(formated_bban, spec.bban_regexp)) {\n var checksom = mod9710Iban(params.countryCode + '00' + formated_bban);\n return params.countryCode + ('0' + (98 - checksom)).slice(-2) + formated_bban;\n }\n return null;\n}\n/**\n * extractIBAN\n * ```\n * // returns {iban: \"NL91ABNA0417164300\", bban: \"ABNA0417164300\", countryCode: \"NL\", valid: true, accountNumber: '0417164300', bankIdentifier: 'ABNA'}\n * ibantools.extractIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function extractIBAN(iban) {\n var result = {};\n var eFormatIBAN = electronicFormatIBAN(iban);\n result.iban = eFormatIBAN || iban;\n if (!!eFormatIBAN && isValidIBAN(eFormatIBAN)) {\n result.bban = eFormatIBAN.slice(4);\n result.countryCode = eFormatIBAN.slice(0, 2);\n result.valid = true;\n var spec = countrySpecs[result.countryCode];\n if (spec.account_indentifier) {\n var ac = spec.account_indentifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.accountNumber = result.iban.slice(starting, ending + 1);\n }\n if (spec.bank_identifier) {\n var ac = spec.bank_identifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.bankIdentifier = result.bban.slice(starting, ending + 1);\n }\n if (spec.branch_indentifier) {\n var ac = spec.branch_indentifier.split('-');\n var starting = parseInt(ac[0]);\n var ending = parseInt(ac[1]);\n result.branchIdentifier = result.bban.slice(starting, ending + 1);\n }\n }\n else {\n result.valid = false;\n }\n return result;\n}\n/**\n * Check BBAN format\n *\n * @ignore\n */\nfunction checkFormatBBAN(bban, bformat) {\n var reg = new RegExp(bformat, '');\n return reg.test(bban);\n}\n/**\n * Get IBAN in electronic format (no spaces)\n * IBAN validation is not performed.\n * When non-string value for IBAN is provided, returns null.\n * ```\n * // returns \"NL91ABNA0417164300\"\n * ibantools.electronicFormatIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function electronicFormatIBAN(iban) {\n if (typeof iban !== 'string') {\n return null;\n }\n return iban.replace(/[-\\ ]/g, '').toUpperCase();\n}\n/**\n * Get IBAN in friendly format (separated after every 4 characters)\n * IBAN validation is not performed.\n * When non-string value for IBAN is provided, returns null.\n * ```\n * // returns \"NL91 ABNA 0417 1643 00\"\n * ibantools.friendlyFormatIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * // returns \"NL91-ABNA-0417-1643-00\"\n * ibantools.friendlyFormatIBAN(\"NL91ABNA0417164300\",\"-\");\n * ```\n */\nexport function friendlyFormatIBAN(iban, separator) {\n if (typeof iban !== 'string') {\n return null;\n }\n if (separator === undefined || separator === null) {\n separator = ' ';\n }\n var electronic_iban = electronicFormatIBAN(iban);\n /* istanbul ignore if */\n if (electronic_iban === null) {\n return null;\n }\n return electronic_iban.replace(/(.{4})(?!$)/g, '$1' + separator);\n}\n/**\n * Calculate checksum of IBAN and compares it with checksum provided in IBAN Registry\n *\n * @ignore\n */\nfunction isValidIBANChecksum(iban) {\n var countryCode = iban.slice(0, 2);\n var providedChecksum = parseInt(iban.slice(2, 4), 10);\n var bban = iban.slice(4);\n // Wikipedia[validating_iban] says there are a specif way to check if a IBAN is valid but\n // it. It says 'If the remainder is 1, the check digit test is passed and the\n // IBAN might be valid.'. might, MIGHT!\n // We don't want might but want yes or no. Since every BBAN is IBAN from the fifth\n // (slice(4)) we can generate the IBAN from BBAN and country code(two first characters)\n // from in the IBAN.\n // To generate the (generate the iban check digits)[generating-iban-check]\n // Move the country code to the end\n // remove the checksum from the begging\n // Add \"00\" to the end\n // modulo 97 on the amount\n // subtract remainder from 98, (98 - remainder)\n // Add a leading 0 if the remainder is less then 10 (padStart(2, \"0\")) (we skip this\n // since we compare int, not string)\n //\n // [validating_iban][https://en.wikipedia.org/wiki/International_Bank_Account_Number#Validating_the_IBAN]\n // [generating-iban-check][https://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits]\n var validationString = replaceCharaterWithCode(\"\".concat(bban).concat(countryCode, \"00\"));\n var rest = mod9710(validationString);\n return 98 - rest === providedChecksum;\n}\n/**\n * Iban contain characters and should be converted to intereger by 55 substracted\n * from there ascii value\n *\n * @ignore\n */\nfunction replaceCharaterWithCode(str) {\n // It is slower but alot more readable\n // https://jsbench.me/ttkzgsekae/1\n return str\n .split('')\n .map(function (c) {\n var code = c.charCodeAt(0);\n return code >= 65 ? (code - 55).toString() : c;\n })\n .join('');\n}\n/**\n * MOD-97-10\n *\n * @ignore\n */\nfunction mod9710Iban(iban) {\n return mod9710(replaceCharaterWithCode(iban.slice(4) + iban.slice(0, 4)));\n}\n/**\n * Returns specifications for all countries, even those who are not\n * members of IBAN registry. `IBANRegistry` field indicates if country\n * is member of not.\n *\n * ```\n * // Validating IBAN form field after user selects his country\n * // \n * $(\"#countries\").select(function() {\n * // Find country\n * let country = ibantools.getCountrySpecifications()[$(this).val()];\n * // Add country code letters to IBAN form field\n * $(\"input#iban\").value($(this).val());\n * // Add New value to \"pattern\" attribute to #iban input text field\n * $(\"input#iban\").attr(\"pattern\", $(this).val() + \"[0-9]{2}\" + country.bban_regexp.slice(1).replace(\"$\",\"\"));\n * });\n * ```\n */\nexport function getCountrySpecifications() {\n var countyMap = {};\n for (var countyCode in countrySpecs) {\n var county = countrySpecs[countyCode];\n countyMap[countyCode] = {\n chars: county.chars || null,\n bban_regexp: county.bban_regexp || null,\n IBANRegistry: county.IBANRegistry || false,\n SEPA: county.SEPA || false,\n };\n }\n return countyMap;\n}\n/**\n * Validate BIC/SWIFT\n *\n * ```\n * // returns true\n * ibantools.isValidBIC(\"ABNANL2A\");\n *\n * // returns true\n * ibantools.isValidBIC(\"NEDSZAJJXXX\");\n *\n * // returns false\n * ibantools.isValidBIC(\"ABN4NL2A\");\n *\n * // returns false\n * ibantools.isValidBIC(\"ABNA NL 2A\");\n * ```\n */\nexport function isValidBIC(bic) {\n if (!bic) {\n return false;\n }\n var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', '');\n var spec = countrySpecs[bic.toUpperCase().slice(4, 6)];\n return reg.test(bic) && spec !== undefined;\n}\n/**\n * BIC validation errors\n */\nexport var ValidationErrorsBIC;\n(function (ValidationErrorsBIC) {\n ValidationErrorsBIC[ValidationErrorsBIC[\"NoBICProvided\"] = 0] = \"NoBICProvided\";\n ValidationErrorsBIC[ValidationErrorsBIC[\"NoBICCountry\"] = 1] = \"NoBICCountry\";\n ValidationErrorsBIC[ValidationErrorsBIC[\"WrongBICFormat\"] = 2] = \"WrongBICFormat\";\n})(ValidationErrorsBIC || (ValidationErrorsBIC = {}));\n/**\n * validateBIC\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateBIC(\"NEDSZAJJXXX\");\n * ```\n */\nexport function validateBIC(bic) {\n var result = { errorCodes: [], valid: true };\n if (bic !== undefined && bic !== null && bic !== '') {\n var spec = countrySpecs[bic.toUpperCase().slice(4, 6)];\n if (spec === undefined) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.NoBICCountry);\n }\n else {\n var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', '');\n if (!reg.test(bic)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.WrongBICFormat);\n }\n }\n }\n else {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.NoBICProvided);\n }\n return result;\n}\n/**\n * extractBIC\n * ```\n * // returns {bankCode: \"ABNA\", countryCode: \"NL\", locationCode: \"2A\", branchCode: null, testBIC: false, valid: true}\n * ibantools.extractBIC(\"ABNANL2A\");\n * ```\n */\nexport function extractBIC(inputBic) {\n var result = {};\n var bic = inputBic.toUpperCase();\n if (isValidBIC(bic)) {\n result.bankCode = bic.slice(0, 4);\n result.countryCode = bic.slice(4, 6);\n result.locationCode = bic.slice(6, 8);\n result.testBIC = result.locationCode[1] === '0' ? true : false;\n result.branchCode = bic.length > 8 ? bic.slice(8) : null;\n result.valid = true;\n }\n else {\n result.valid = false;\n }\n return result;\n}\n/**\n * Used for Norway BBAN check\n *\n * @ignore\n */\nvar checkNorwayBBAN = function (bban) {\n var weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2];\n var bbanWithoutSpacesAndPeriods = bban.replace(/[\\s.]+/g, '');\n var controlDigit = parseInt(bbanWithoutSpacesAndPeriods.charAt(10), 10);\n var bbanWithoutControlDigit = bbanWithoutSpacesAndPeriods.substring(0, 10);\n var sum = 0;\n for (var index = 0; index < 10; index++) {\n sum += parseInt(bbanWithoutControlDigit.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 11;\n return controlDigit === (remainder === 0 ? 0 : 11 - remainder);\n};\n/**\n * Used for Belgian BBAN check\n *\n * @ignore\n */\nvar checkBelgianBBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var checkingPart = parseInt(stripped.substring(0, stripped.length - 2), 10);\n var checksum = parseInt(stripped.substring(stripped.length - 2, stripped.length), 10);\n var remainder = checkingPart % 97 === 0 ? 97 : checkingPart % 97;\n return remainder === checksum;\n};\n/**\n * Mod 97/10 calculation\n *\n * @ignore\n */\nvar mod9710 = function (validationString) {\n while (validationString.length > 2) {\n // > Any computer programming language or software package that is used to compute D\n // > mod 97 directly must have the ability to handle integers of more than 30 digits.\n // > In practice, this can only be done by software that either supports\n // > arbitrary-precision arithmetic or that can handle 219-bit (unsigned) integers\n // https://en.wikipedia.org/wiki/International_Bank_Account_Number#Modulo_operation_on_IBAN\n var part = validationString.slice(0, 6);\n var partInt = parseInt(part, 10);\n if (isNaN(partInt)) {\n return NaN;\n }\n validationString = (partInt % 97) + validationString.slice(part.length);\n }\n return parseInt(validationString, 10) % 97;\n};\n/**\n * Check BBAN based on Mod97/10 calculation for countries that support it:\n * BA, ME, MK, PT, RS, SI\n *\n * @ignore\n */\nvar checkMod9710BBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var reminder = mod9710(stripped);\n return reminder === 1;\n};\n/**\n * Used for Poland BBAN check\n *\n * @ignore\n */\nvar checkPolandBBAN = function (bban) {\n var weights = [3, 9, 7, 1, 3, 9, 7];\n var controlDigit = parseInt(bban.charAt(7), 10);\n var toCheck = bban.substring(0, 7);\n var sum = 0;\n for (var index = 0; index < 7; index++) {\n sum += parseInt(toCheck.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n return controlDigit === (remainder === 0 ? 0 : 10 - remainder);\n};\n/**\n * Spain (ES) BBAN check\n *\n * @ignore\n */\nvar checkSpainBBAN = function (bban) {\n var weightsBankBranch = [4, 8, 5, 10, 9, 7, 3, 6];\n var weightsAccount = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6];\n var controlBankBranch = parseInt(bban.charAt(8), 10);\n var controlAccount = parseInt(bban.charAt(9), 10);\n var bankBranch = bban.substring(0, 8);\n var account = bban.substring(10, 20);\n var sum = 0;\n for (var index = 0; index < 8; index++) {\n sum += parseInt(bankBranch.charAt(index), 10) * weightsBankBranch[index];\n }\n var remainder = sum % 11;\n if (controlBankBranch !== (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder)) {\n return false;\n }\n sum = 0;\n for (var index = 0; index < 10; index++) {\n sum += parseInt(account.charAt(index), 10) * weightsAccount[index];\n }\n remainder = sum % 11;\n return controlAccount === (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder);\n};\n/**\n * Mod 11/10 check\n *\n * @ignore\n */\nvar checkMod1110 = function (toCheck, control) {\n var nr = 10;\n for (var index = 0; index < toCheck.length; index++) {\n nr += parseInt(toCheck.charAt(index), 10);\n if (nr % 10 !== 0) {\n nr = nr % 10;\n }\n nr = nr * 2;\n nr = nr % 11;\n }\n return control === (11 - nr === 10 ? 0 : 11 - nr);\n};\n/**\n * Croatian (HR) BBAN check\n *\n * @ignore\n */\nvar checkCroatianBBAN = function (bban) {\n var controlBankBranch = parseInt(bban.charAt(6), 10);\n var controlAccount = parseInt(bban.charAt(16), 10);\n var bankBranch = bban.substring(0, 6);\n var account = bban.substring(7, 16);\n return checkMod1110(bankBranch, controlBankBranch) && checkMod1110(account, controlAccount);\n};\n/**\n * Czech (CZ) and Slowak (SK) BBAN check\n *\n * @ignore\n */\nvar checkCzechAndSlovakBBAN = function (bban) {\n var weightsPrefix = [10, 5, 8, 4, 2, 1];\n var weightsSuffix = [6, 3, 7, 9, 10, 5, 8, 4, 2, 1];\n var controlPrefix = parseInt(bban.charAt(9), 10);\n var controlSuffix = parseInt(bban.charAt(19), 10);\n var prefix = bban.substring(4, 9);\n var suffix = bban.substring(10, 19);\n var sum = 0;\n for (var index = 0; index < prefix.length; index++) {\n sum += parseInt(prefix.charAt(index), 10) * weightsPrefix[index];\n }\n var remainder = sum % 11;\n if (controlPrefix !== (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder)) {\n return false;\n }\n sum = 0;\n for (var index = 0; index < suffix.length; index++) {\n sum += parseInt(suffix.charAt(index), 10) * weightsSuffix[index];\n }\n remainder = sum % 11;\n return controlSuffix === (remainder === 0 ? 0 : remainder === 1 ? 1 : 11 - remainder);\n};\n/**\n * Estonian (EE) BBAN check\n *\n * @ignore\n */\nvar checkEstonianBBAN = function (bban) {\n var weights = [7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7];\n var controlDigit = parseInt(bban.charAt(15), 10);\n var toCheck = bban.substring(2, 15);\n var sum = 0;\n for (var index = 0; index < toCheck.length; index++) {\n sum += parseInt(toCheck.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n return controlDigit === (remainder === 0 ? 0 : 10 - remainder);\n};\n/**\n * Check French (FR) BBAN\n * Also for Monaco (MC)\n *\n * @ignore\n */\nvar checkFrenchBBAN = function (bban) {\n var stripped = bban.replace(/[\\s.]+/g, '');\n var normalized = Array.from(stripped);\n for (var index = 0; index < stripped.length; index++) {\n var c = normalized[index].charCodeAt(0);\n if (c >= 65) {\n switch (c) {\n case 65:\n case 74:\n normalized[index] = '1';\n break;\n case 66:\n case 75:\n case 83:\n normalized[index] = '2';\n break;\n case 67:\n case 76:\n case 84:\n normalized[index] = '3';\n break;\n case 68:\n case 77:\n case 85:\n normalized[index] = '4';\n break;\n case 69:\n case 78:\n case 86:\n normalized[index] = '5';\n break;\n case 70:\n case 79:\n case 87:\n normalized[index] = '6';\n break;\n case 71:\n case 80:\n case 88:\n normalized[index] = '7';\n break;\n case 72:\n case 81:\n case 89:\n normalized[index] = '8';\n break;\n case 73:\n case 82:\n case 90:\n normalized[index] = '9';\n break;\n }\n }\n }\n var remainder = mod9710(normalized.join(''));\n return remainder === 0;\n};\n/**\n * Hungarian (HU) BBAN check\n *\n * @ignore\n */\nvar checkHungarianBBAN = function (bban) {\n var weights = [9, 7, 3, 1, 9, 7, 3, 1, 9, 7, 3, 1, 9, 7, 3];\n var controlDigitBankBranch = parseInt(bban.charAt(7), 10);\n var toCheckBankBranch = bban.substring(0, 7);\n var sum = 0;\n for (var index = 0; index < toCheckBankBranch.length; index++) {\n sum += parseInt(toCheckBankBranch.charAt(index), 10) * weights[index];\n }\n var remainder = sum % 10;\n if (controlDigitBankBranch !== (remainder === 0 ? 0 : 10 - remainder)) {\n return false;\n }\n sum = 0;\n if (bban.endsWith('00000000')) {\n var toCheckAccount = bban.substring(8, 15);\n var controlDigitAccount = parseInt(bban.charAt(15), 10);\n for (var index = 0; index < toCheckAccount.length; index++) {\n sum += parseInt(toCheckAccount.charAt(index), 10) * weights[index];\n }\n var remainder_1 = sum % 10;\n return controlDigitAccount === (remainder_1 === 0 ? 0 : 10 - remainder_1);\n }\n else {\n var toCheckAccount = bban.substring(8, 23);\n var controlDigitAccount = parseInt(bban.charAt(23), 10);\n for (var index = 0; index < toCheckAccount.length; index++) {\n sum += parseInt(toCheckAccount.charAt(index), 10) * weights[index];\n }\n var remainder_2 = sum % 10;\n return controlDigitAccount === (remainder_2 === 0 ? 0 : 10 - remainder_2);\n }\n};\n/**\n * Set custom BBAN validation function for country.\n *\n * If `bban_validation_func` already exists for the corresponding country,\n * it will be overwritten.\n */\nexport var setCountryBBANValidation = function (country, func) {\n if (typeof countrySpecs[country] === 'undefined') {\n return false;\n }\n countrySpecs[country].bban_validation_func = func;\n return true;\n};\n/**\n * Country specifications\n */\nexport var countrySpecs = {\n AD: {\n chars: 24,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '8-24',\n },\n AE: {\n chars: 23,\n bban_regexp: '^[0-9]{3}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '7-23',\n },\n AF: {},\n AG: {},\n AI: {},\n AL: {\n chars: 28,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$',\n IBANRegistry: true,\n branch_indentifier: '3-7',\n bank_identifier: '0-2',\n account_indentifier: '12-28',\n },\n AM: {},\n AO: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n },\n AQ: {},\n AR: {},\n AS: {},\n AT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-4' },\n AU: {},\n AW: {},\n AX: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n },\n AZ: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-28',\n },\n BA: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n },\n BB: {},\n BD: {},\n BE: {\n chars: 16,\n bban_regexp: '^[0-9]{12}$',\n bban_validation_func: checkBelgianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n account_indentifier: '0-16',\n },\n BF: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n BG: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[0-9]{6}[A-Z0-9]{8}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n },\n BH: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-22',\n },\n BI: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '14-27',\n },\n BJ: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n BL: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n },\n BM: {},\n BN: {},\n BO: {},\n BQ: {},\n BR: {\n chars: 29,\n bban_regexp: '^[0-9]{23}[A-Z]{1}[A-Z0-9]{1}$',\n IBANRegistry: true,\n branch_indentifier: '8-12',\n bank_identifier: '0-7',\n account_indentifier: '17-29',\n },\n BS: {},\n BT: {},\n BV: {},\n BW: {},\n BY: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n },\n BZ: {},\n CA: {},\n CC: {},\n CD: {},\n CF: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CG: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CH: {\n chars: 21,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n },\n CI: {\n chars: 28,\n bban_regexp: '^[A-Z]{1}[0-9]{23}$',\n },\n CK: {},\n CL: {},\n CM: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CN: {},\n CO: {},\n CR: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-22',\n },\n CU: {},\n CV: { chars: 25, bban_regexp: '^[0-9]{21}$' },\n CW: {},\n CX: {},\n CY: {\n chars: 28,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-7',\n bank_identifier: '0-2',\n account_indentifier: '12-28',\n },\n CZ: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n bban_validation_func: checkCzechAndSlovakBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n },\n DE: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-7',\n account_indentifier: '13-22',\n },\n DJ: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '14-27',\n },\n DK: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n DM: {},\n DO: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-28',\n },\n DZ: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n },\n EC: {},\n EE: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n bban_validation_func: checkEstonianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-1',\n account_indentifier: '8-20',\n },\n EG: {\n chars: 29,\n bban_regexp: '^[0-9]{25}',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '17-29',\n },\n EH: {},\n ER: {},\n ES: {\n chars: 24,\n bban_validation_func: checkSpainBBAN,\n bban_regexp: '^[0-9]{20}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-7',\n bank_identifier: '0-3',\n account_indentifier: '14-24',\n },\n ET: {},\n FI: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n account_indentifier: '0-0',\n },\n FJ: {},\n FK: {\n chars: 18,\n bban_regexp: '^[A-Z]{2}[0-9]{12}$',\n bank_identifier: '0-1',\n account_indentifier: '6-18',\n },\n FM: {},\n FO: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n FR: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n bban_validation_func: checkFrenchBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n branch_indentifier: '5-9',\n account_indentifier: '14-24',\n },\n GA: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n GB: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-9',\n bank_identifier: '0-3',\n },\n GD: {},\n GE: {\n chars: 22,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-22',\n },\n GF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n GG: {},\n GH: {},\n GI: {\n chars: 23,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{15}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '8-23',\n },\n GL: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '4-18',\n },\n GM: {},\n GN: {},\n GP: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n GQ: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n GR: {\n chars: 27,\n bban_regexp: '^[0-9]{7}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-6',\n bank_identifier: '0-2',\n account_indentifier: '7-27',\n },\n GS: {},\n GT: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{24}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-28',\n },\n GU: {},\n GW: {\n chars: 25,\n bban_regexp: '^[A-Z]{2}[0-9]{19}$',\n },\n GY: {},\n HK: {},\n HM: {},\n HN: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n },\n HR: {\n chars: 21,\n bban_regexp: '^[0-9]{17}$',\n bban_validation_func: checkCroatianBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-6',\n },\n HT: {},\n HU: {\n chars: 28,\n bban_regexp: '^[0-9]{24}$',\n bban_validation_func: checkHungarianBBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '3-6',\n bank_identifier: '0-2',\n },\n ID: {},\n IE: {\n chars: 22,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-9',\n bank_identifier: '0-3',\n },\n IL: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n },\n IM: {},\n IN: {},\n IO: {},\n IQ: {\n chars: 23,\n bban_regexp: '^[A-Z]{4}[0-9]{15}$',\n IBANRegistry: true,\n branch_indentifier: '4-6',\n bank_identifier: '0-3',\n account_indentifier: '11-23',\n },\n IR: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n },\n IS: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '2-3',\n bank_identifier: '0-1',\n },\n IT: {\n chars: 27,\n bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '6-10',\n bank_identifier: '1-5',\n account_indentifier: '4-27',\n },\n JE: {},\n JM: {},\n JO: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n bank_identifier: '4-7',\n },\n JP: {},\n KE: {},\n KG: {},\n KH: {},\n KI: {},\n KM: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n KN: {},\n KP: {},\n KR: {},\n KW: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{22}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '20-30',\n },\n KY: {},\n KZ: {\n chars: 20,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$',\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '0-20',\n },\n LA: {},\n LB: {\n chars: 28,\n bban_regexp: '^[0-9]{4}[A-Z0-9]{20}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '14-28',\n },\n LC: {\n chars: 32,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{24}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-32',\n },\n LI: {\n chars: 21,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-4',\n },\n LK: {},\n LR: {},\n LS: {},\n LT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-4' },\n LU: {\n chars: 20,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-2',\n },\n LV: {\n chars: 21,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{13}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '0-21',\n },\n LY: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n IBANRegistry: true,\n branch_indentifier: '3-5',\n bank_identifier: '0-2',\n account_indentifier: '10-25',\n },\n MA: {\n chars: 28,\n bban_regexp: '^[0-9]{24}$',\n },\n MC: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n bban_validation_func: checkFrenchBBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n },\n MD: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{2}[A-Z0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-24',\n },\n ME: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n account_indentifier: '4-22',\n },\n MF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n MG: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n MH: {},\n MK: {\n chars: 19,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n },\n ML: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n MM: {},\n MN: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-20',\n },\n MO: {},\n MP: {},\n MQ: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n MR: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n IBANRegistry: true,\n branch_indentifier: '5-9',\n bank_identifier: '0-4',\n account_indentifier: '4-27',\n },\n MS: {},\n MT: {\n chars: 31,\n bban_regexp: '^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '4-8',\n bank_identifier: '0-3',\n account_indentifier: '15-31',\n },\n MU: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[0-9]{19}[A-Z]{3}$',\n IBANRegistry: true,\n branch_indentifier: '6-7',\n bank_identifier: '0-5',\n account_indentifier: '0-30',\n },\n MV: {},\n MW: {},\n MX: {},\n MY: {},\n MZ: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n },\n NA: {},\n NC: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n NE: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n NF: {},\n NG: {},\n NI: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n bank_identifier: '0-3',\n IBANRegistry: true,\n account_indentifier: '8-28',\n },\n NL: {\n chars: 18,\n bban_regexp: '^[A-Z]{4}[0-9]{10}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '8-18',\n },\n NO: {\n chars: 15,\n bban_regexp: '^[0-9]{11}$',\n bban_validation_func: checkNorwayBBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '4-15',\n },\n NP: {},\n NR: {},\n NU: {},\n NZ: {},\n OM: {\n chars: 23,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: false,\n bank_identifier: '0-2',\n },\n PA: {},\n PE: {},\n PF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n PG: {},\n PH: {},\n PK: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n },\n PL: {\n chars: 28,\n bban_validation_func: checkPolandBBAN,\n bban_regexp: '^[0-9]{24}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '0-7',\n account_indentifier: '2-28',\n },\n PM: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n PN: {},\n PR: {},\n PS: {\n chars: 29,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{21}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '17-29',\n },\n PT: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n },\n PW: {},\n PY: {},\n QA: {\n chars: 29,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{21}$',\n IBANRegistry: true,\n bank_identifier: '0-3',\n account_indentifier: '8-29',\n },\n RE: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n RO: {\n chars: 24,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n bank_identifier: '0-3',\n account_indentifier: '0-24',\n },\n RS: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n bank_identifier: '0-2',\n },\n RU: {\n chars: 33,\n bban_regexp: '^[0-9]{14}[A-Z0-9]{15}$',\n IBANRegistry: true,\n branch_indentifier: '9-13',\n bank_identifier: '0-8',\n account_indentifier: '13-33',\n },\n RW: {},\n SA: {\n chars: 24,\n bban_regexp: '^[0-9]{2}[A-Z0-9]{18}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '12-24',\n },\n SB: {},\n SC: {\n chars: 31,\n bban_regexp: '^[A-Z]{4}[0-9]{20}[A-Z]{3}$',\n IBANRegistry: true,\n branch_indentifier: '6-7',\n bank_identifier: '0-5',\n account_indentifier: '12-28',\n },\n SD: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n bank_identifier: '0-1',\n account_indentifier: '6-18',\n },\n SE: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true, bank_identifier: '0-2' },\n SG: {},\n SH: {},\n SI: {\n chars: 19,\n bban_regexp: '^[0-9]{15}$',\n bban_validation_func: checkMod9710BBAN,\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '2-4',\n bank_identifier: '0-1',\n account_indentifier: '9-16',\n },\n SJ: {},\n SK: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n bban_validation_func: checkCzechAndSlovakBBAN,\n IBANRegistry: true,\n SEPA: true,\n },\n SL: {},\n SM: {\n chars: 27,\n bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n branch_indentifier: '6-10',\n },\n SN: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n SO: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n branch_indentifier: '4-6',\n account_indentifier: '11-23',\n },\n SR: {},\n SS: {},\n ST: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n IBANRegistry: true,\n branch_indentifier: '4-7',\n },\n SV: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n IBANRegistry: true,\n account_indentifier: '8-28',\n },\n SX: {},\n SY: {},\n SZ: {},\n TC: {},\n TD: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n TF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n TG: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n TH: {},\n TJ: {},\n TK: {},\n TL: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n account_indentifier: '4-23',\n },\n TM: {},\n TN: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n IBANRegistry: true,\n branch_indentifier: '2-4',\n account_indentifier: '4-24',\n },\n TO: {},\n TR: {\n chars: 26,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{17}$',\n IBANRegistry: true,\n },\n TT: {},\n TV: {},\n TW: {},\n TZ: {},\n UA: {\n chars: 29,\n bban_regexp: '^[0-9]{6}[A-Z0-9]{19}$',\n IBANRegistry: true,\n account_indentifier: '15-29',\n },\n UG: {},\n UM: {},\n US: {},\n UY: {},\n UZ: {},\n VA: {\n chars: 22,\n bban_regexp: '^[0-9]{18}',\n IBANRegistry: true,\n SEPA: true,\n account_indentifier: '7-22',\n },\n VC: {},\n VE: {},\n VG: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$',\n IBANRegistry: true,\n account_indentifier: '8-24',\n },\n VI: {},\n VN: {},\n VU: {},\n WF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n WS: {},\n XK: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n IBANRegistry: true,\n branch_indentifier: '2-3',\n account_indentifier: '4-20',\n },\n YE: {},\n YT: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n ZA: {},\n ZM: {},\n ZW: {},\n};\n",null],"names":["ibanTools.isValidIBAN","ibanTools.extractIBAN","ibanTools.isSEPACountry","ibanTools.isValidBIC","ibanTools.extractBIC","ibanTools.getCountrySpecifications"],"mappings":"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A,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE;AACpC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE;AACjC,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU;CAClC;AAED,MAAM,aAAa,GAAG;IAClB,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ;CACH;;;;","x_google_ignoreList":[0]}