decodeUrl(url) {
		const uuid = "uuid" + Math.floor(Math.random() + Date.now() * 1000000);

		if (/#/.test(url)) {
			url = url.replace(/#/g, uuid);
		}

		let { username, password, hostname, pathname, port, query } = URLParse(
			url,
			true,
		);

		if (pathname) {
			pathname = decodeURIComponent(pathname);
			pathname = pathname.replace(new RegExp(uuid, "g"), "#");
		}

		if (username) {
			username = decodeURIComponent(username);
		}

		if (password) {
			password = decodeURIComponent(password);
		}

		if (port) {
			port = Number.parseInt(port);
		}

		let { keyFile, passPhrase } = query;

		if (keyFile) {
			query.keyFile = decodeURIComponent(keyFile);
		}

		if (passPhrase) {
			query.passPhrase = decodeURIComponent(passPhrase);
		}

		return { username, password, hostname, pathname, port, query };
	}
Decodes url and returns username, password, hostname, pathname, port and query
@param {string} url
@returns {URLObject}