<commit_before>var SYMBOLS = '!"#$%&\'()*+,./:;<=>?@[\\]^{|}~';

var Vault = function (settings) {
    this._phrase = settings.phrase || '';
    this._length = settings.length || Vault.DEFAULT_LENGTH;
    this._repeat = settings.repeat || Vault.DEFAULT_REPEAT;
    this._iteration = settings.iteration || Vault.DEFAULT_ITERATION;
    this._allowed = Vault.ALL.slice();
    this._required = [];

    var i, n;

    if (settings.symbols) {
        var isValidSymbol = false,
            allowedSymbols = SYMBOLS.split(''),
            overwriteSymbols = settings.symbols.split('');

        for (var o = 0, m = overwriteSymbols.length; o < m; o++) {
            var validSymbol = false;
            for (i = 0, n = allowedSymbols.length; i < n; i++) {
                if (overwriteSymbols[o] == allowedSymbols[i]) {
                    validSymbol = true;
                } else {
                    continue;
                }
            }
            isValidSymbol = validSymbol;

            if (isValidSymbol === false) {
                break;
            }
        }

        if (isValidSymbol) {
            Vault.SYMBOL = settings.symbols.split('');
        }
    }

    var types = Vault.TYPES, value;
    for (i = 0, n = types.length; i < n; i++) {
        value = settings[types[i].toLowerCase()];
        if (value === 0) {
            this.subtract(Vault[types[i]]);
        } else if (typeof value === 'number') {
            this.require(Vault[types[i]], value);
        }
    }

    n = this._length - this._required.length;<commit_msg>make symbol overwrite really work<commit_after>var SYMBOLS = '!"#$%&\'()*+,./:;<=>?@[\\]^{|}~';

var Vault = function (settings) {
    this._phrase = settings.phrase || '';
    this._length = settings.length || Vault.DEFAULT_LENGTH;
    this._repeat = settings.repeat || Vault.DEFAULT_REPEAT;
    this._iteration = settings.iteration || Vault.DEFAULT_ITERATION;
    this._required = [];

    var i, n;

    if (settings.symbols) {
        var isValidSymbol = false,
            allowedSymbols = SYMBOLS.split(''),
            overwriteSymbols = settings.symbols.split('');

        for (var o = 0, m = overwriteSymbols.length; o < m; o++) {
            var validSymbol = false;
            for (i = 0, n = allowedSymbols.length; i < n; i++) {
                if (overwriteSymbols[o] == allowedSymbols[i]) {
                    validSymbol = true;
                } else {
                    continue;
                }
            }
            isValidSymbol = validSymbol;

            if (isValidSymbol === false) {
                break;
            }
        }

        if (isValidSymbol) {
            Vault.SYMBOL = settings.symbols.split('');
            Vault.ALL = Vault.ALPHANUM.concat(Vault.SPACE).concat(Vault.SYMBOL);
        }
    }

    this._allowed = Vault.ALL.slice();

    var types = Vault.TYPES, value;
    for (i = 0, n = types.length; i < n; i++) {
        value = settings[types[i].toLowerCase()];
        if (value === 0) {
            this.subtract(Vault[types[i]]);
        } else if (typeof value === 'number') {
            this.require(Vault[types[i]], value);
        }
    }

    n = this._length - this._required.length;
{'fraction_non_alphanumeric': 0.15221459762944478, 'fraction_numerical': 0.002495321272613849, 'mean_word_length': 1.78627280625543, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '493086', 'n_tokens_mistral': 1000, 'n_tokens_neox': 961, 'n_words': 199}