    main.navigateGetParams = function () {
        var parts = decodeURI(window.location.hash).split('/');
        return parts[2] ? decodeURIComponent(parts[2]) : null;
    };
The software uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the software does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.