<commit_before><script>
    // touchSupport
    touchSupport = (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));
    if (!touchSupport) {
        document.documentElement.className += " no-touch";
    }
    else{
        document.documentElement.className += " touch";
    }
    // IE version
    var uA = window.navigator.userAgent;
    var msie = uA.indexOf('MSIE ');
    var trident = uA.indexOf('Trident/');
    var ie;
    function detectIE () {
        if (msie > 0) {
            // IE 10 or older => return version number
            ie = 'ie' + parseInt(uA.substring(msie + 5, uA.indexOf('.', msie)), 10);
            return ie;
        }
        if (trident > 0) {
            // IE 11 (or newer) => return version number
            var rv = uA.indexOf('rv:');
            ie = 'ie' + parseInt(uA.substring(rv + 3, uA.indexOf('.', rv)), 10);
            return ie;
        }
    return ie = 'nonIE';
    }
    detectIE();
    if (ie === 'nonIE') {
        document.documentElement.className += (' ' + ie);
    } else{
        document.documentElement.className += (' ' + (ie + ' ' + 'IE'));
    };
</script><commit_msg>[FEATURE] Android/iOS detection<commit_after><script>
    // touchSupport
    touchSupport = (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0));
    if (!touchSupport) {
        document.documentElement.className += " no-touch";
    }
    else{
        document.documentElement.className += " touch";
    }
    // IE version
    var uA = window.navigator.userAgent;
    var msie = uA.indexOf('MSIE ');
    var trident = uA.indexOf('Trident/');
    var ie;
    function detectIE () {
        if (msie > 0) {
            // IE 10 or older => return version number
            ie = 'ie' + parseInt(uA.substring(msie + 5, uA.indexOf('.', msie)), 10);
            return ie;
        }
        if (trident > 0) {
            // IE 11 (or newer) => return version number
            var rv = uA.indexOf('rv:');
            ie = 'ie' + parseInt(uA.substring(rv + 3, uA.indexOf('.', rv)), 10);
            return ie;
        }
    return ie = 'nonIE';
    }
    detectIE();
    if (ie === 'nonIE') {
        document.documentElement.className += (' ' + ie);
    } else{
        document.documentElement.className += (' ' + (ie + ' ' + 'IE'));
    };

    var isIOS = false;
    function detectIOS() {
        var iDevices = [
            'iPad Simulator',
            'iPhone Simulator',
            'iPod Simulator',
            'iPad',
            'iPhone',
            'iPod'
        ];

        if (!!navigator.platform) {
            while(iDevices.length) {
                if (navigator.platform === iDevices.pop()) {
                    isIOS = true;
                    // In case if should be in DOM
                    // for now can be omitted - no styles by default attached to this class name ' iOS'
                    document.documentElement.className += " iOS";
                }
            }
        }
    }
    detectIOS();

    var isAndroid = false;
    var android = uA.indexOf('Android ');
    function detectAndroid() {
        if (android > 0) {
            isAndroid = true;
            // In case if should be in DOM
            // for now can be omitted - no styles by default attached to this class name ' android'
            document.documentElement.className += " android";
        }
    }
    detectAndroid();
</script>
{'fraction_non_alphanumeric': 0.14367981572127844, 'fraction_numerical': 0.008350129570976101, 'mean_word_length': 1.7268445839874411, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 20, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2544291', 'n_tokens_mistral': 1054, 'n_tokens_neox': 1012, 'n_words': 262}