Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?xml version="1.0" encoding="UTF-8"?> <plugin name="(WK) Contact" version_long="10003" v..

Decoded Output download

<?xml version="1.0" encoding="UTF-8"?> 
<plugin name="(WK) Contact" version_long="10003" version_human="1.0.3" author="Weak." website="http://weak.pl/" update_check=""><hooks/><settings><setting><key>wkContact_IDUzytkownika1</key><default/></setting><setting><key>wkContact_IDUzytkownika2</key><default/></setting><setting><key>wkContact_IDUzytkownika3</key><default/></setting><setting><key>wkContact_IDUzytkownika4</key><default/></setting><setting><key>wkContact_IDUzytkownika5</key><default/></setting><setting><key>wkContact_IDUzytkownika6</key><default/></setting><setting><key>wkContact_Steam1</key><default/></setting><setting><key>wkContact_Steam2</key><default/></setting><setting><key>wkContact_Steam3</key><default/></setting><setting><key>wkContact_Steam4</key><default/></setting><setting><key>wkContact_Steam5</key><default/></setting><setting><key>wkContact_Steam6</key><default/></setting><setting><key>wkContact_GG1</key><default/></setting><setting><key>wkContact_GG2</key><default/></setting><setting><key>wkContact_GG3</key><default/></setting><setting><key>wkContact_GG4</key><default/></setting><setting><key>wkContact_GG5</key><default/></setting><setting><key>wkContact_GG6</key><default/></setting><setting><key>wkContact_Steam1ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam2ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam3ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam4ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam5ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam6ONOFF</key><default>0</default></setting><setting><key>wkContact_GG1ONOFF</key><default>0</default></setting><setting><key>wkContact_GG2ONOFF</key><default>0</default></setting><setting><key>wkContact_GG3ONOFF</key><default>0</default></setting><setting><key>wkContact_GG4ONOFF</key><default>0</default></setting><setting><key>wkContact_GG5ONOFF</key><default>0</default></setting><setting><key>wkContact_GG6ONOFF</key><default>0</default></setting></settings><settingsCode><![CDATA[//<?php 
$form->addTab('wkContact_1'); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika1', \IPS\Settings::i()->wkContact_IDUzytkownika1, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika1' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam1ONOFF', \IPS\Settings::i()->wkContact_Steam1ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam1' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam1', \IPS\Settings::i()->wkContact_Steam1, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam1' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG1ONOFF', \IPS\Settings::i()->wkContact_GG1ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG1' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG1', \IPS\Settings::i()->wkContact_GG1, FALSE, [], NULL, NULL, NULL, 'wkContact_GG1' ) ); 
 
$form->addTab('wkContact_2'); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika2', \IPS\Settings::i()->wkContact_IDUzytkownika2, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika2' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam2ONOFF', \IPS\Settings::i()->wkContact_Steam2ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam2' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam2', \IPS\Settings::i()->wkContact_Steam2, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam2' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG2ONOFF', \IPS\Settings::i()->wkContact_GG2ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG2' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG2', \IPS\Settings::i()->wkContact_GG2, FALSE, [], NULL, NULL, NULL, 'wkContact_GG2' ) ); 
 
$form->addTab('wkContact_3'); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika3', \IPS\Settings::i()->wkContact_IDUzytkownika3, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika3' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam3ONOFF', \IPS\Settings::i()->wkContact_Steam3ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam3' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam3', \IPS\Settings::i()->wkContact_Steam3, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam3' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG3ONOFF', \IPS\Settings::i()->wkContact_GG3ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG3' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG3', \IPS\Settings::i()->wkContact_GG3, FALSE, [], NULL, NULL, NULL, 'wkContact_GG3' ) ); 
 
$form->addTab('wkContact_4'); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika4', \IPS\Settings::i()->wkContact_IDUzytkownika4, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika4' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam4ONOFF', \IPS\Settings::i()->wkContact_Steam4ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam4' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam4', \IPS\Settings::i()->wkContact_Steam4, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam4' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG4ONOFF', \IPS\Settings::i()->wkContact_GG4ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG4' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG4', \IPS\Settings::i()->wkContact_GG4, FALSE, [], NULL, NULL, NULL, 'wkContact_GG4' ) ); 
 
$form->addTab('wkContact_5'); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika5', \IPS\Settings::i()->wkContact_IDUzytkownika5, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika5' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam5ONOFF', \IPS\Settings::i()->wkContact_Steam5ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam5' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam5', \IPS\Settings::i()->wkContact_Steam5, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam5' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG5ONOFF', \IPS\Settings::i()->wkContact_GG5ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG5' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG5', \IPS\Settings::i()->wkContact_GG5, FALSE, [], NULL, NULL, NULL, 'wkContact_GG5' ) ); 
 
$form->addTab('wkContact_6'); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika6', \IPS\Settings::i()->wkContact_IDUzytkownika6, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika6' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam6ONOFF', \IPS\Settings::i()->wkContact_Steam6ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam6' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam6', \IPS\Settings::i()->wkContact_Steam6, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam6' ) ); 
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG6ONOFF', \IPS\Settings::i()->wkContact_GG6ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG6' ) ) ) ); 
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG6', \IPS\Settings::i()->wkContact_GG6, FALSE, [], NULL, NULL, NULL, 'wkContact_GG6' ) ); 
 
if ( $values = $form->values() ) 
{ 
	$form->saveAsSettings(); 
	return TRUE; 
} 
 
return $form;]]></settingsCode><tasks/><widgets><widget key="wkContact" class="\IPS\Widget" restrict="sidebar,cms" default_area="" allow_reuse="" menu_style="menu" embeddable=""><![CDATA[<?php 
/** 
 * @brief		wkContact Widget 
 * @author		<a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a> 
 * @copyright	(c) Invision Power Services, Inc. 
 * @license		https://www.invisioncommunity.com/legal/standards/ 
 * @package		Invision Community 
 * @subpackage	wkContact 
 * @since		01 Sep 2017 
 */ 
 
namespace IPS\plugins\<{LOCATION}>\widgets; 
 
/* To prevent PHP errors (extending class does not exist) revealing path */ 
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) 
{ 
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); 
	exit; 
} 
 
/** 
 * wkContact Widget 
 */ 
class _wkContact extends \IPS\Widget 
{ 
	/** 
	 * @brief	Widget Key 
	 */ 
	public $key = 'wkContact'; 
	 
	/** 
	 * @brief	App 
	 */ 
	 
		 
	/** 
	 * @brief	Plugin 
	 */ 
	public $plugin = '<{ID}>'; 
	 
	/** 
	 * Initialise this widget 
	 * 
	 * @return void 
	 */  
	public function init() 
	{ 
		// Use this to perform any set up and to assign a template that is not in the following format: 
		// $this->template( array( \IPS\Theme::i()->getTemplate( 'widgets', $this->app, 'front' ), $this->key ) ); 
		// If you are creating a plugin, uncomment this line: 
		// $this->template( array( \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' ), $this->key ) ); 
		// And then create your template at located at plugins/<your plugin>/dev/html/wkContact.phtml 
		 
		$this->template( array( \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' ), $this->key ) ); 
		parent::init(); 
	} 
	 
	/** 
	 * Specify widget configuration 
	 * 
	 * @param	null|\IPS\Helpers\Form	$form	Form object 
	 * @return	null|\IPS\Helpers\Form 
	 */ 
	public function configuration( &$form=null ) 
	{ 
 		if ( $form === null ) 
		{ 
	 		$form = new \IPS\Helpers\Form; 
 		} 
 
 		// $$form->add( new \IPS\Helpers\Form\XXXX( .... ) ); 
 		// return $form; 
 	}  
 	 
 	 /** 
 	 * Ran before saving widget configuration 
 	 * 
 	 * @param	array	$values	Values from form 
 	 * @return	array 
 	 */ 
 	public function preConfig( $values ) 
 	{ 
 		return $values; 
 	} 
 
	/** 
	 * Render a widget 
	 * 
	 * @return	string 
	 */ 
	public function render() 
	{ 
		return $this->output( $this->configuration ); 
		// Use $this->output( $foo, $bar ); to return a string generated by the template set in init() or manually added via $widget->template( $callback ); 
		// Note you MUST route output through $this->output() rather than calling \IPS\Theme::i()->getTemplate() because of the way widgets are cached 
	} 
}]]></widget></widgets><htmlFiles><html filename="wkContact.phtml">PGlwczp0ZW1wbGF0ZSBwYXJhbWV0ZXJzPSIkZGF0YSwgJG9yaWVudGF0aW9uIiAvPgo8aDMgY2xhc3M9J2lwc1R5cGVfcmVzZXQgaXBzV2lkZ2V0X3RpdGxlJz57bGFuZz0id2tDb250YWN0In08L2gzPgo8ZGl2IGNsYXNzPSdpcHNQYWRfaGFsZiBpcHNXaWRnZXRfaW5uZXInPgogICAgPHVsIGNsYXNzPSdpcHNEYXRhTGlzdCBpcHNEYXRhTGlzdF9yZWR1Y2VkU3BhY2luZyc+CgkgICAge3tmb3JlYWNoIFxJUFNcRGI6OmkoKS0+c2VsZWN0KCAnKicsICdjb3JlX21lbWJlcnMnLCBcSVBTXERiOjppKCktPmluICggJ21lbWJlcl9pZCcsIGFycmF5KCBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9JRFV6eXRrb3duaWthMSApICkgKSBhcyAkcm93IH19CgkJe3skbWVtYmVyID0gXElQU1xNZW1iZXI6OmNvbnN0cnVjdEZyb21EYXRhKCAkcm93ICk7fX0gCiAgICAgICAgICAgIDxsaSBjbGFzcz0naXBzRGF0YUl0ZW0nPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naXBzRGF0YUl0ZW1faWNvbiBpcHNQb3NfdG9wJz4KICAgICAgICAgICAgICAgICAgICB7dGVtcGxhdGU9InVzZXJQaG90byIgYXBwPSJjb3JlIiBncm91cD0iZ2xvYmFsIiBwYXJhbXM9IiRtZW1iZXIsICd0aW55JyJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpcHNEYXRhSXRlbV9tYWluJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSdpcHNUeXBlX3NlY3Rpb25IZWFkJyBzdHlsZT0nZm9udC1zaXplOiAxNXB4Oyc+CgkJCQkgICAgCSAgICB7JG1lbWJlci0+bGluaygpfHJhd30KCQkJCQkgICAgICAgIHt7aWYgJG1lbWJlci0+aXNPbmxpbmUoKX19CgkJCQkJCQkJPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb25saW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib25saW5lIn0nPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb2ZmbGluZScgZGF0YS1pcHN0b29sdGlwPScnIF90aXRsZT0ne2xhbmc9Im9mZmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbmRpZn19CgkJCQkJICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdpcHNUeXBlX3Jlc2V0IGlwc1R5cGVfbm9ybWFsIGlwc1R5cGVfbGlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ne3VybD0iYXBwPWNvcmUmbW9kdWxlPW1lc3NhZ2luZyZjb250cm9sbGVyPW1lc3NlbmdlciZkbz1jb21wb3NlJnRvPXskbWVtYmVyLT5tZW1iZXJfaWR9IiBzZW9UZW1wbGF0ZT0ibWVzc2VuZ2VyX2NvbXBvc2UifScgZGF0YS1pcHNEaWFsb2cgZGF0YS1pcHNEaWFsb2ctdGl0bGU9J3tsYW5nPSJjb21wb3NlX25ldyJ9JyBkYXRhLWlwc0RpYWxvZy1mb3JjZVJlbG9hZCBkYXRhLWlwc0RpYWxvZy1yZW1vdGVTdWJtaXQgZGF0YS1pcHNEaWFsb2ctZmxhc2hNZXNzYWdlPSJ7bGFuZz0ibWVzc2FnZV9zZW50In0iPjxpIGNsYXNzPSdmYSBmYS1lbnZlbG9wZSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X1N0ZWFtMU9OT0ZGID09IDF9fQoJCQkJCQkJICA8YSBkYXRhLWlwc3Rvb2x0aXA9JycgaHJlZj0ne3NldHRpbmc9IndrQ29udGFjdF9TdGVhbTEifScgX3RpdGxlPSd7bGFuZz0id2tDb250YWN0X1N0ZWFtIn0nPjxpIGNsYXNzPSdmYSBmYS1zdGVhbSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2VuZGlmfX0KCQkJCQkJCXt7aWYgXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfR0cxT05PRkYgPT0gMX19CgkJCQkJCQkgICAgPGEgZGF0YS1pcHN0b29sdGlwPScnIGhyZWY9J2dnOntzZXR0aW5nPSJ3a0NvbnRhY3RfR0cxIn0nIF90aXRsZT0ne2xhbmc9IndrQ29udGFjdF9HRyJ9Jz48aSBjbGFzcz0nZmEgZmEtc3VuLW8nPjwvaT4gPC9hPgoJCQkJCQkJe3tlbmRpZn19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0naXBzUG9zX3JpZ2h0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXhwcmVzc2lvbj0iXElQU1xNZW1iZXJcR3JvdXA6OmxvYWQoICRyb3dbJ21lbWJlcl9ncm91cF9pZCddICktPmZvcm1hdHRlZE5hbWUiIHJhdz0idHJ1ZSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvbGk+CgkJCXt7ZW5kZm9yZWFjaH19CiAgICAgICAgICAgIHt7Zm9yZWFjaCBcSVBTXERiOjppKCktPnNlbGVjdCggJyonLCAnY29yZV9tZW1iZXJzJywgXElQU1xEYjo6aSgpLT5pbiAoICdtZW1iZXJfaWQnLCBhcnJheSggXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfSURVenl0a293bmlrYTIgKSApICkgYXMgJHJvdyB9fQoJCQl7eyRtZW1iZXIgPSBcSVBTXE1lbWJlcjo6Y29uc3RydWN0RnJvbURhdGEoICRyb3cgKTt9fSAKICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0naXBzRGF0YUl0ZW0nPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2lwc0RhdGFJdGVtX2ljb24gaXBzUG9zX3RvcCc+CiAgICAgICAgICAgICAgICAgICAgICAgIHt0ZW1wbGF0ZT0idXNlclBob3RvIiBhcHA9ImNvcmUiIGdyb3VwPSJnbG9iYWwiIHBhcmFtcz0iJG1lbWJlciwgJ3RpbnknIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpcHNEYXRhSXRlbV9tYWluJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSdpcHNUeXBlX3NlY3Rpb25IZWFkJyBzdHlsZT0nZm9udC1zaXplOiAxNXB4Oyc+CgkJCQkgICAgCSAgICB7JG1lbWJlci0+bGluaygpfHJhd30KCQkJCQkgICAgICAgIHt7aWYgJG1lbWJlci0+aXNPbmxpbmUoKX19CgkJCQkJCQkJPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb25saW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib25saW5lIn0nPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb2ZmbGluZScgZGF0YS1pcHN0b29sdGlwPScnIF90aXRsZT0ne2xhbmc9Im9mZmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbmRpZn19CgkJCQkJICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdpcHNUeXBlX3Jlc2V0IGlwc1R5cGVfbm9ybWFsIGlwc1R5cGVfbGlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ne3VybD0iYXBwPWNvcmUmbW9kdWxlPW1lc3NhZ2luZyZjb250cm9sbGVyPW1lc3NlbmdlciZkbz1jb21wb3NlJnRvPXskbWVtYmVyLT5tZW1iZXJfaWR9IiBzZW9UZW1wbGF0ZT0ibWVzc2VuZ2VyX2NvbXBvc2UifScgZGF0YS1pcHNEaWFsb2cgZGF0YS1pcHNEaWFsb2ctdGl0bGU9J3tsYW5nPSJjb21wb3NlX25ldyJ9JyBkYXRhLWlwc0RpYWxvZy1mb3JjZVJlbG9hZCBkYXRhLWlwc0RpYWxvZy1yZW1vdGVTdWJtaXQgZGF0YS1pcHNEaWFsb2ctZmxhc2hNZXNzYWdlPSJ7bGFuZz0ibWVzc2FnZV9zZW50In0iPjxpIGNsYXNzPSdmYSBmYS1lbnZlbG9wZSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X1N0ZWFtMk9OT0ZGID09IDF9fQoJCQkJCQkJICAgIDxhIGRhdGEtaXBzdG9vbHRpcD0nJyBocmVmPSd7c2V0dGluZz0id2tDb250YWN0X1N0ZWFtMiJ9JyBfdGl0bGU9J3tsYW5nPSJ3a0NvbnRhY3RfU3RlYW0ifSc+PGkgY2xhc3M9J2ZhIGZhLXN0ZWFtJz48L2k+IDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsKCQkJCQkJCXt7ZW5kaWZ9fQoJCQkJCQkJe3tpZiBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9HRzJPTk9GRiA9PSAxfX0KCQkJCQkJCSAgICA8YSBkYXRhLWlwc3Rvb2x0aXA9JycgaHJlZj0nZ2c6e3NldHRpbmc9IndrQ29udGFjdF9HRzIifScgX3RpdGxlPSd7bGFuZz0id2tDb250YWN0X0dHIn0nPjxpIGNsYXNzPSdmYSBmYS1zdW4tbyc+PC9pPiA8L2E+CgkJCQkJCQl7e2VuZGlmfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdpcHNQb3NfcmlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtleHByZXNzaW9uPSJcSVBTXE1lbWJlclxHcm91cDo6bG9hZCggJHJvd1snbWVtYmVyX2dyb3VwX2lkJ10gKS0+Zm9ybWF0dGVkTmFtZSIgcmF3PSJ0cnVlIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9saT4KCQkJe3tlbmRmb3JlYWNofX0KCQkJe3tmb3JlYWNoIFxJUFNcRGI6OmkoKS0+c2VsZWN0KCAnKicsICdjb3JlX21lbWJlcnMnLCBcSVBTXERiOjppKCktPmluICggJ21lbWJlcl9pZCcsIGFycmF5KCBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9JRFV6eXRrb3duaWthMyApICkgKSBhcyAkcm93IH19CgkJCXt7JG1lbWJlciA9IFxJUFNcTWVtYmVyOjpjb25zdHJ1Y3RGcm9tRGF0YSggJHJvdyApO319IAogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSdpcHNEYXRhSXRlbSc+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naXBzRGF0YUl0ZW1faWNvbiBpcHNQb3NfdG9wJz4KICAgICAgICAgICAgICAgICAgICAgICAge3RlbXBsYXRlPSJ1c2VyUGhvdG8iIGFwcD0iY29yZSIgZ3JvdXA9Imdsb2JhbCIgcGFyYW1zPSIkbWVtYmVyLCAndGlueScifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2lwc0RhdGFJdGVtX21haW4nPgogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J2lwc1R5cGVfc2VjdGlvbkhlYWQnIHN0eWxlPSdmb250LXNpemU6IDE1cHg7Jz4KCQkJCSAgICAJICAgIHskbWVtYmVyLT5saW5rKCl8cmF3fQoJCQkJCSAgICAgICAge3tpZiAkbWVtYmVyLT5pc09ubGluZSgpfX0KCQkJCQkJCQk8aSBjbGFzcz0nZmEgZmEtY2lyY2xlIGlwc09ubGluZVN0YXR1c19vbmxpbmUnIGRhdGEtaXBzdG9vbHRpcD0nJyBfdGl0bGU9J3tsYW5nPSJvbmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbHNlfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0nZmEgZmEtY2lyY2xlIGlwc09ubGluZVN0YXR1c19vZmZsaW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib2ZmbGluZSJ9Jz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VuZGlmfX0KCQkJCQkgICAgPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9J2lwc1R5cGVfcmVzZXQgaXBzVHlwZV9ub3JtYWwgaXBzVHlwZV9saWdodCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSd7dXJsPSJhcHA9Y29yZSZtb2R1bGU9bWVzc2FnaW5nJmNvbnRyb2xsZXI9bWVzc2VuZ2VyJmRvPWNvbXBvc2UmdG89eyRtZW1iZXItPm1lbWJlcl9pZH0iIHNlb1RlbXBsYXRlPSJtZXNzZW5nZXJfY29tcG9zZSJ9JyBkYXRhLWlwc0RpYWxvZyBkYXRhLWlwc0RpYWxvZy10aXRsZT0ne2xhbmc9ImNvbXBvc2VfbmV3In0nIGRhdGEtaXBzRGlhbG9nLWZvcmNlUmVsb2FkIGRhdGEtaXBzRGlhbG9nLXJlbW90ZVN1Ym1pdCBkYXRhLWlwc0RpYWxvZy1mbGFzaE1lc3NhZ2U9IntsYW5nPSJtZXNzYWdlX3NlbnQifSI+PGkgY2xhc3M9J2ZhIGZhLWVudmVsb3BlJz48L2k+IDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsKCQkJCQkJCXt7aWYgXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfU3RlYW0zT05PRkYgPT0gMX19CgkJCQkJCQkgICAgPGEgZGF0YS1pcHN0b29sdGlwPScnIGhyZWY9J3tzZXR0aW5nPSJ3a0NvbnRhY3RfU3RlYW0zIn0nIF90aXRsZT0ne2xhbmc9IndrQ29udGFjdF9TdGVhbSJ9Jz48aSBjbGFzcz0nZmEgZmEtc3RlYW0nPjwvaT4gPC9hPiZuYnNwOyZuYnNwOyZuYnNwOwoJCQkJCQkJe3tlbmRpZn19CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X0dHM09OT0ZGID09IDF9fQoJCQkJCQkJICAgIDxhIGRhdGEtaXBzdG9vbHRpcD0nJyBocmVmPSdnZzp7c2V0dGluZz0id2tDb250YWN0X0dHMyJ9JyBfdGl0bGU9J3tsYW5nPSJ3a0NvbnRhY3RfR0cifSc+PGkgY2xhc3M9J2ZhIGZhLXN1bi1vJz48L2k+IDwvYT4KCQkJCQkJCXt7ZW5kaWZ9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2lwc1Bvc19yaWdodCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2V4cHJlc3Npb249IlxJUFNcTWVtYmVyXEdyb3VwOjpsb2FkKCAkcm93WydtZW1iZXJfZ3JvdXBfaWQnXSApLT5mb3JtYXR0ZWROYW1lIiByYXc9InRydWUifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2xpPgoJCQl7e2VuZGZvcmVhY2h9fQoJCQl7e2ZvcmVhY2ggXElQU1xEYjo6aSgpLT5zZWxlY3QoICcqJywgJ2NvcmVfbWVtYmVycycsIFxJUFNcRGI6OmkoKS0+aW4gKCAnbWVtYmVyX2lkJywgYXJyYXkoIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X0lEVXp5dGtvd25pa2E0ICkgKSApIGFzICRyb3cgfX0KCQkJe3skbWVtYmVyID0gXElQU1xNZW1iZXI6OmNvbnN0cnVjdEZyb21EYXRhKCAkcm93ICk7fX0gCiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9J2lwc0RhdGFJdGVtJz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpcHNEYXRhSXRlbV9pY29uIGlwc1Bvc190b3AnPgogICAgICAgICAgICAgICAgICAgICAgICB7dGVtcGxhdGU9InVzZXJQaG90byIgYXBwPSJjb3JlIiBncm91cD0iZ2xvYmFsIiBwYXJhbXM9IiRtZW1iZXIsICd0aW55JyJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naXBzRGF0YUl0ZW1fbWFpbic+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0naXBzVHlwZV9zZWN0aW9uSGVhZCcgc3R5bGU9J2ZvbnQtc2l6ZTogMTVweDsnPgoJCQkJICAgIAkgICAgeyRtZW1iZXItPmxpbmsoKXxyYXd9CgkJCQkJICAgICAgICB7e2lmICRtZW1iZXItPmlzT25saW5lKCl9fQoJCQkJCQkJCTxpIGNsYXNzPSdmYSBmYS1jaXJjbGUgaXBzT25saW5lU3RhdHVzX29ubGluZScgZGF0YS1pcHN0b29sdGlwPScnIF90aXRsZT0ne2xhbmc9Im9ubGluZSJ9Jz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Vsc2V9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSdmYSBmYS1jaXJjbGUgaXBzT25saW5lU3RhdHVzX29mZmxpbmUnIGRhdGEtaXBzdG9vbHRpcD0nJyBfdGl0bGU9J3tsYW5nPSJvZmZsaW5lIn0nPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZW5kaWZ9fQoJCQkJCSAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0naXBzVHlwZV9yZXNldCBpcHNUeXBlX25vcm1hbCBpcHNUeXBlX2xpZ2h0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9J3t1cmw9ImFwcD1jb3JlJm1vZHVsZT1tZXNzYWdpbmcmY29udHJvbGxlcj1tZXNzZW5nZXImZG89Y29tcG9zZSZ0bz17JG1lbWJlci0+bWVtYmVyX2lkfSIgc2VvVGVtcGxhdGU9Im1lc3Nlbmdlcl9jb21wb3NlIn0nIGRhdGEtaXBzRGlhbG9nIGRhdGEtaXBzRGlhbG9nLXRpdGxlPSd7bGFuZz0iY29tcG9zZV9uZXcifScgZGF0YS1pcHNEaWFsb2ctZm9yY2VSZWxvYWQgZGF0YS1pcHNEaWFsb2ctcmVtb3RlU3VibWl0IGRhdGEtaXBzRGlhbG9nLWZsYXNoTWVzc2FnZT0ie2xhbmc9Im1lc3NhZ2Vfc2VudCJ9Ij48aSBjbGFzcz0nZmEgZmEtZW52ZWxvcGUnPjwvaT4gPC9hPiZuYnNwOyZuYnNwOyZuYnNwOwoJCQkJCQkJe3tpZiBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9TdGVhbTRPTk9GRiA9PSAxfX0KCQkJCQkJCSAgICA8YSBkYXRhLWlwc3Rvb2x0aXA9JycgaHJlZj0ne3NldHRpbmc9IndrQ29udGFjdF9TdGVhbTQifScgX3RpdGxlPSd7bGFuZz0id2tDb250YWN0X1N0ZWFtIn0nPjxpIGNsYXNzPSdmYSBmYS1zdGVhbSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2VuZGlmfX0KCQkJCQkJCXt7aWYgXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfR0c0T05PRkYgPT0gMX19CgkJCQkJCQkgICAgPGEgZGF0YS1pcHN0b29sdGlwPScnIGhyZWY9J2dnOntzZXR0aW5nPSJ3a0NvbnRhY3RfR0c0In0nIF90aXRsZT0ne2xhbmc9IndrQ29udGFjdF9HRyJ9Jz48aSBjbGFzcz0nZmEgZmEtc3VuLW8nPjwvaT4gPC9hPgoJCQkJCQkJe3tlbmRpZn19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0naXBzUG9zX3JpZ2h0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXhwcmVzc2lvbj0iXElQU1xNZW1iZXJcR3JvdXA6OmxvYWQoICRyb3dbJ21lbWJlcl9ncm91cF9pZCddICktPmZvcm1hdHRlZE5hbWUiIHJhdz0idHJ1ZSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvbGk+CgkJCXt7ZW5kZm9yZWFjaH19CgkJCXt7Zm9yZWFjaCBcSVBTXERiOjppKCktPnNlbGVjdCggJyonLCAnY29yZV9tZW1iZXJzJywgXElQU1xEYjo6aSgpLT5pbiAoICdtZW1iZXJfaWQnLCBhcnJheSggXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfSURVenl0a293bmlrYTUgKSApICkgYXMgJHJvdyB9fQoJCQl7eyRtZW1iZXIgPSBcSVBTXE1lbWJlcjo6Y29uc3RydWN0RnJvbURhdGEoICRyb3cgKTt9fSAKICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0naXBzRGF0YUl0ZW0nPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2lwc0RhdGFJdGVtX2ljb24gaXBzUG9zX3RvcCc+CiAgICAgICAgICAgICAgICAgICAgICAgIHt0ZW1wbGF0ZT0idXNlclBob3RvIiBhcHA9ImNvcmUiIGdyb3VwPSJnbG9iYWwiIHBhcmFtcz0iJG1lbWJlciwgJ3RpbnknIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpcHNEYXRhSXRlbV9tYWluJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSdpcHNUeXBlX3NlY3Rpb25IZWFkJyBzdHlsZT0nZm9udC1zaXplOiAxNXB4Oyc+CgkJCQkgICAgCSAgICB7JG1lbWJlci0+bGluaygpfHJhd30KCQkJCQkgICAgICAgIHt7aWYgJG1lbWJlci0+aXNPbmxpbmUoKX19CgkJCQkJCQkJPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb25saW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib25saW5lIn0nPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb2ZmbGluZScgZGF0YS1pcHN0b29sdGlwPScnIF90aXRsZT0ne2xhbmc9Im9mZmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbmRpZn19CgkJCQkJICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdpcHNUeXBlX3Jlc2V0IGlwc1R5cGVfbm9ybWFsIGlwc1R5cGVfbGlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ne3VybD0iYXBwPWNvcmUmbW9kdWxlPW1lc3NhZ2luZyZjb250cm9sbGVyPW1lc3NlbmdlciZkbz1jb21wb3NlJnRvPXskbWVtYmVyLT5tZW1iZXJfaWR9IiBzZW9UZW1wbGF0ZT0ibWVzc2VuZ2VyX2NvbXBvc2UifScgZGF0YS1pcHNEaWFsb2cgZGF0YS1pcHNEaWFsb2ctdGl0bGU9J3tsYW5nPSJjb21wb3NlX25ldyJ9JyBkYXRhLWlwc0RpYWxvZy1mb3JjZVJlbG9hZCBkYXRhLWlwc0RpYWxvZy1yZW1vdGVTdWJtaXQgZGF0YS1pcHNEaWFsb2ctZmxhc2hNZXNzYWdlPSJ7bGFuZz0ibWVzc2FnZV9zZW50In0iPjxpIGNsYXNzPSdmYSBmYS1lbnZlbG9wZSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X1N0ZWFtNU9OT0ZGID09IDF9fQoJCQkJCQkJICAgIDxhIGRhdGEtaXBzdG9vbHRpcD0nJyBocmVmPSd7c2V0dGluZz0id2tDb250YWN0X1N0ZWFtNSJ9JyBfdGl0bGU9J3tsYW5nPSJ3a0NvbnRhY3RfU3RlYW0ifSc+PGkgY2xhc3M9J2ZhIGZhLXN0ZWFtJz48L2k+IDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsKCQkJCQkJCXt7ZW5kaWZ9fQoJCQkJCQkJe3tpZiBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9HRzVPTk9GRiA9PSAxfX0KCQkJCQkJCSAgICA8YSBkYXRhLWlwc3Rvb2x0aXA9JycgaHJlZj0nZ2c6e3NldHRpbmc9IndrQ29udGFjdF9HRzUifScgX3RpdGxlPSd7bGFuZz0id2tDb250YWN0X0dHIn0nPjxpIGNsYXNzPSdmYSBmYS1zdW4tbyc+PC9pPiA8L2E+CgkJCQkJCQl7e2VuZGlmfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdpcHNQb3NfcmlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtleHByZXNzaW9uPSJcSVBTXE1lbWJlclxHcm91cDo6bG9hZCggJHJvd1snbWVtYmVyX2dyb3VwX2lkJ10gKS0+Zm9ybWF0dGVkTmFtZSIgcmF3PSJ0cnVlIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9saT4KCQkJe3tlbmRmb3JlYWNofX0KCQkJe3tmb3JlYWNoIFxJUFNcRGI6OmkoKS0+c2VsZWN0KCAnKicsICdjb3JlX21lbWJlcnMnLCBcSVBTXERiOjppKCktPmluICggJ21lbWJlcl9pZCcsIGFycmF5KCBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9JRFV6eXRrb3duaWthNiApICkgKSBhcyAkcm93IH19CgkJCXt7JG1lbWJlciA9IFxJUFNcTWVtYmVyOjpjb25zdHJ1Y3RGcm9tRGF0YSggJHJvdyApO319IAogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSdpcHNEYXRhSXRlbSc+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naXBzRGF0YUl0ZW1faWNvbiBpcHNQb3NfdG9wJz4KICAgICAgICAgICAgICAgICAgICAgICAge3RlbXBsYXRlPSJ1c2VyUGhvdG8iIGFwcD0iY29yZSIgZ3JvdXA9Imdsb2JhbCIgcGFyYW1zPSIkbWVtYmVyLCAndGlueScifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2lwc0RhdGFJdGVtX21haW4nPgogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J2lwc1R5cGVfc2VjdGlvbkhlYWQnIHN0eWxlPSdmb250LXNpemU6IDE1cHg7Jz4KCQkJCSAgICAJICAgIHskbWVtYmVyLT5saW5rKCl8cmF3fQoJCQkJCSAgICAgICAge3tpZiAkbWVtYmVyLT5pc09ubGluZSgpfX0KCQkJCQkJCQk8aSBjbGFzcz0nZmEgZmEtY2lyY2xlIGlwc09ubGluZVN0YXR1c19vbmxpbmUnIGRhdGEtaXBzdG9vbHRpcD0nJyBfdGl0bGU9J3tsYW5nPSJvbmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbHNlfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0nZmEgZmEtY2lyY2xlIGlwc09ubGluZVN0YXR1c19vZmZsaW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib2ZmbGluZSJ9Jz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VuZGlmfX0KCQkJCQkgICAgPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9J2lwc1R5cGVfcmVzZXQgaXBzVHlwZV9ub3JtYWwgaXBzVHlwZV9saWdodCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSd7dXJsPSJhcHA9Y29yZSZtb2R1bGU9bWVzc2FnaW5nJmNvbnRyb2xsZXI9bWVzc2VuZ2VyJmRvPWNvbXBvc2UmdG89eyRtZW1iZXItPm1lbWJlcl9pZH0iIHNlb1RlbXBsYXRlPSJtZXNzZW5nZXJfY29tcG9zZSJ9JyBkYXRhLWlwc0RpYWxvZyBkYXRhLWlwc0RpYWxvZy10aXRsZT0ne2xhbmc9ImNvbXBvc2VfbmV3In0nIGRhdGEtaXBzRGlhbG9nLWZvcmNlUmVsb2FkIGRhdGEtaXBzRGlhbG9nLXJlbW90ZVN1Ym1pdCBkYXRhLWlwc0RpYWxvZy1mbGFzaE1lc3NhZ2U9IntsYW5nPSJtZXNzYWdlX3NlbnQifSI+PGkgY2xhc3M9J2ZhIGZhLWVudmVsb3BlJz48L2k+IDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsKCQkJCQkJCXt7aWYgXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfU3RlYW02T05PRkYgPT0gMX19CgkJCQkJCQkgICAgPGEgZGF0YS1pcHN0b29sdGlwPScnIGhyZWY9J3tzZXR0aW5nPSJ3a0NvbnRhY3RfU3RlYW02In0nIF90aXRsZT0ne2xhbmc9IndrQ29udGFjdF9TdGVhbSJ9Jz48aSBjbGFzcz0nZmEgZmEtc3RlYW0nPjwvaT4gPC9hPiZuYnNwOyZuYnNwOyZuYnNwOwoJCQkJCQkJe3tlbmRpZn19CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X0dHNk9OT0ZGID09IDF9fQoJCQkJCQkJICAgIDxhIGRhdGEtaXBzdG9vbHRpcD0nJyBocmVmPSdnZzp7c2V0dGluZz0id2tDb250YWN0X0dHNiJ9JyBfdGl0bGU9J3tsYW5nPSJ3a0NvbnRhY3RfR0cifSc+PGkgY2xhc3M9J2ZhIGZhLXN1bi1vJz48L2k+IDwvYT4KCQkJCQkJCXt7ZW5kaWZ9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2lwc1Bvc19yaWdodCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2V4cHJlc3Npb249IlxJUFNcTWVtYmVyXEdyb3VwOjpsb2FkKCAkcm93WydtZW1iZXJfZ3JvdXBfaWQnXSApLT5mb3JtYXR0ZWROYW1lIiByYXc9InRydWUifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2xpPgoJCXt7ZW5kZm9yZWFjaH19CiAgICAgPC91bD4KPC9kaXY+</html></htmlFiles><cssFiles/><jsFiles/><resourcesFiles/><lang><word key="block_wkContact" js="0">Kontakt z administracj</word><word key="block_wkContact_desc" js="0">Wtyczka wywietla kontakt z adminami</word><word key="wkContact_1" js="0">Kontakt #1</word><word key="wkContact_2" js="0">Kontakt #2</word><word key="wkContact_3" js="0">Kontakt #3</word><word key="wkContact_4" js="0">Kontakt #4</word><word key="wkContact_5" js="0">Kontakt #5</word><word key="wkContact_6" js="0">Kontakt #6</word><word key="wkContact" js="0">Kontakt z administracj</word><word key="wkContact_Steam" js="0">Kliknij, aby wywietli profil steam</word><word key="wkContact_GG" js="0">Kliknij, aby napisa wiadomo lub skopiowa numer Gadu-Gadu</word><word key="wkContact_IDUzytkownika1" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika2" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika3" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika4" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika5" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika6" js="0">ID uytkownika</word><word key="wkContact_Steam1" js="0">Steam</word><word key="wkContact_Steam1_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam2" js="0">Steam</word><word key="wkContact_Steam2_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam3" js="0">Steam</word><word key="wkContact_Steam3_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam4" js="0">Steam</word><word key="wkContact_Steam4_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam5" js="0">Steam</word><word key="wkContact_Steam5_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam6" js="0">Steam</word><word key="wkContact_Steam6_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_GG1" js="0">Gadu-Gadu</word><word key="wkContact_GG2" js="0">Gadu-Gadu</word><word key="wkContact_GG3" js="0">Gadu-Gadu</word><word key="wkContact_GG4" js="0">Gadu-Gadu</word><word key="wkContact_GG5" js="0">Gadu-Gadu</word><word key="wkContact_GG6" js="0">Gadu-Gadu</word><word key="wkContact_Steam1ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam2ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam3ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam4ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam5ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam6ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_GG1ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG2ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG3ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG4ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG5ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG6ONOFF" js="0">Ikona Gadu-Gadu wczona?</word></lang><versions><version long="10000" human="1.0.0"><![CDATA[//<?php 
 
 
/* To prevent PHP errors (extending class does not exist) revealing path */ 
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) 
{ 
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); 
	exit; 
} 
 
/** 
 * Install Code 
 */ 
class ips_plugins_setup_install 
{ 
	/** 
	 * ... 
	 * 
	 * @return	array	If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops) 
	 */ 
	public function step1() 
	{ 
		 
 
		return TRUE; 
	} 
	 
	// You can create as many additional methods (step2, step3, etc.) as is necessary. 
	// Each step will be executed in a new HTTP request 
}]]></version><version long="10001" human="1.0.1"><![CDATA[//<?php 
 
 
/* To prevent PHP errors (extending class does not exist) revealing path */ 
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) 
{ 
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); 
	exit; 
} 
 
/** 
 * 1.0.1 Upgrade Code 
 */ 
class ips_plugins_setup_upg_10001 
{ 
	/** 
	 * ... 
	 * 
	 * @return	array	If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops) 
	 */ 
	public function step1() 
	{ 
		 
 
		return TRUE; 
	} 
	 
	// You can create as many additional methods (step2, step3, etc.) as is necessary. 
	// Each step will be executed in a new HTTP request 
}]]></version><version long="10002" human="1.0.2"><![CDATA[//<?php 
 
 
/* To prevent PHP errors (extending class does not exist) revealing path */ 
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) 
{ 
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); 
	exit; 
} 
 
/** 
 * 1.0.2 Upgrade Code 
 */ 
class ips_plugins_setup_upg_10002 
{ 
	/** 
	 * ... 
	 * 
	 * @return	array	If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops) 
	 */ 
	public function step1() 
	{ 
		 
 
		return TRUE; 
	} 
	 
	// You can create as many additional methods (step2, step3, etc.) as is necessary. 
	// Each step will be executed in a new HTTP request 
}]]></version><version long="10003" human="1.0.3"><![CDATA[//<?php 
 
 
/* To prevent PHP errors (extending class does not exist) revealing path */ 
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) ) 
{ 
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' ); 
	exit; 
} 
 
/** 
 * 1.0.3 Upgrade Code 
 */ 
class ips_plugins_setup_upg_10003 
{ 
	/** 
	 * ... 
	 * 
	 * @return	array	If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops) 
	 */ 
	public function step1() 
	{ 
		 
 
		return TRUE; 
	} 
	 
	// You can create as many additional methods (step2, step3, etc.) as is necessary. 
	// Each step will be executed in a new HTTP request 
}]]></version></versions></plugin> 
 ?>

Did this file decode correctly?

Original Code

<?xml version="1.0" encoding="UTF-8"?>
<plugin name="(WK) Contact" version_long="10003" version_human="1.0.3" author="Weak." website="http://weak.pl/" update_check=""><hooks/><settings><setting><key>wkContact_IDUzytkownika1</key><default/></setting><setting><key>wkContact_IDUzytkownika2</key><default/></setting><setting><key>wkContact_IDUzytkownika3</key><default/></setting><setting><key>wkContact_IDUzytkownika4</key><default/></setting><setting><key>wkContact_IDUzytkownika5</key><default/></setting><setting><key>wkContact_IDUzytkownika6</key><default/></setting><setting><key>wkContact_Steam1</key><default/></setting><setting><key>wkContact_Steam2</key><default/></setting><setting><key>wkContact_Steam3</key><default/></setting><setting><key>wkContact_Steam4</key><default/></setting><setting><key>wkContact_Steam5</key><default/></setting><setting><key>wkContact_Steam6</key><default/></setting><setting><key>wkContact_GG1</key><default/></setting><setting><key>wkContact_GG2</key><default/></setting><setting><key>wkContact_GG3</key><default/></setting><setting><key>wkContact_GG4</key><default/></setting><setting><key>wkContact_GG5</key><default/></setting><setting><key>wkContact_GG6</key><default/></setting><setting><key>wkContact_Steam1ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam2ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam3ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam4ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam5ONOFF</key><default>0</default></setting><setting><key>wkContact_Steam6ONOFF</key><default>0</default></setting><setting><key>wkContact_GG1ONOFF</key><default>0</default></setting><setting><key>wkContact_GG2ONOFF</key><default>0</default></setting><setting><key>wkContact_GG3ONOFF</key><default>0</default></setting><setting><key>wkContact_GG4ONOFF</key><default>0</default></setting><setting><key>wkContact_GG5ONOFF</key><default>0</default></setting><setting><key>wkContact_GG6ONOFF</key><default>0</default></setting></settings><settingsCode><![CDATA[//<?php
$form->addTab('wkContact_1');
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika1', \IPS\Settings::i()->wkContact_IDUzytkownika1, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika1' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam1ONOFF', \IPS\Settings::i()->wkContact_Steam1ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam1' ) ) ) );
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam1', \IPS\Settings::i()->wkContact_Steam1, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam1' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG1ONOFF', \IPS\Settings::i()->wkContact_GG1ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG1' ) ) ) );
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG1', \IPS\Settings::i()->wkContact_GG1, FALSE, [], NULL, NULL, NULL, 'wkContact_GG1' ) );

$form->addTab('wkContact_2');
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika2', \IPS\Settings::i()->wkContact_IDUzytkownika2, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika2' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam2ONOFF', \IPS\Settings::i()->wkContact_Steam2ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam2' ) ) ) );
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam2', \IPS\Settings::i()->wkContact_Steam2, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam2' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG2ONOFF', \IPS\Settings::i()->wkContact_GG2ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG2' ) ) ) );
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG2', \IPS\Settings::i()->wkContact_GG2, FALSE, [], NULL, NULL, NULL, 'wkContact_GG2' ) );

$form->addTab('wkContact_3');
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika3', \IPS\Settings::i()->wkContact_IDUzytkownika3, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika3' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam3ONOFF', \IPS\Settings::i()->wkContact_Steam3ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam3' ) ) ) );
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam3', \IPS\Settings::i()->wkContact_Steam3, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam3' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG3ONOFF', \IPS\Settings::i()->wkContact_GG3ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG3' ) ) ) );
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG3', \IPS\Settings::i()->wkContact_GG3, FALSE, [], NULL, NULL, NULL, 'wkContact_GG3' ) );

$form->addTab('wkContact_4');
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika4', \IPS\Settings::i()->wkContact_IDUzytkownika4, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika4' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam4ONOFF', \IPS\Settings::i()->wkContact_Steam4ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam4' ) ) ) );
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam4', \IPS\Settings::i()->wkContact_Steam4, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam4' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG4ONOFF', \IPS\Settings::i()->wkContact_GG4ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG4' ) ) ) );
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG4', \IPS\Settings::i()->wkContact_GG4, FALSE, [], NULL, NULL, NULL, 'wkContact_GG4' ) );

$form->addTab('wkContact_5');
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika5', \IPS\Settings::i()->wkContact_IDUzytkownika5, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika5' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam5ONOFF', \IPS\Settings::i()->wkContact_Steam5ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam5' ) ) ) );
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam5', \IPS\Settings::i()->wkContact_Steam5, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam5' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG5ONOFF', \IPS\Settings::i()->wkContact_GG5ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG5' ) ) ) );
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG5', \IPS\Settings::i()->wkContact_GG5, FALSE, [], NULL, NULL, NULL, 'wkContact_GG5' ) );

$form->addTab('wkContact_6');
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_IDUzytkownika6', \IPS\Settings::i()->wkContact_IDUzytkownika6, FALSE, [], NULL, NULL, NULL, 'wkContact_IDUzytkownika6' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_Steam6ONOFF', \IPS\Settings::i()->wkContact_Steam6ONOFF, FALSE, array('togglesOn' => array( 'wkContact_Steam6' ) ) ) );
$form->add( new \IPS\Helpers\Form\Url( 'wkContact_Steam6', \IPS\Settings::i()->wkContact_Steam6, FALSE, [], NULL, NULL, NULL, 'wkContact_Steam6' ) );
$form->add( new \IPS\Helpers\Form\YesNo( 'wkContact_GG6ONOFF', \IPS\Settings::i()->wkContact_GG6ONOFF, FALSE, array('togglesOn' => array( 'wkContact_GG6' ) ) ) );
$form->add( new \IPS\Helpers\Form\Text( 'wkContact_GG6', \IPS\Settings::i()->wkContact_GG6, FALSE, [], NULL, NULL, NULL, 'wkContact_GG6' ) );

if ( $values = $form->values() )
{
	$form->saveAsSettings();
	return TRUE;
}

return $form;]]></settingsCode><tasks/><widgets><widget key="wkContact" class="\IPS\Widget" restrict="sidebar,cms" default_area="" allow_reuse="" menu_style="menu" embeddable=""><![CDATA[<?php
/**
 * @brief		wkContact Widget
 * @author		<a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
 * @copyright	(c) Invision Power Services, Inc.
 * @license		https://www.invisioncommunity.com/legal/standards/
 * @package		Invision Community
 * @subpackage	wkContact
 * @since		01 Sep 2017
 */

namespace IPS\plugins\<{LOCATION}>\widgets;

/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
	exit;
}

/**
 * wkContact Widget
 */
class _wkContact extends \IPS\Widget
{
	/**
	 * @brief	Widget Key
	 */
	public $key = 'wkContact';
	
	/**
	 * @brief	App
	 */
	
		
	/**
	 * @brief	Plugin
	 */
	public $plugin = '<{ID}>';
	
	/**
	 * Initialise this widget
	 *
	 * @return void
	 */ 
	public function init()
	{
		// Use this to perform any set up and to assign a template that is not in the following format:
		// $this->template( array( \IPS\Theme::i()->getTemplate( 'widgets', $this->app, 'front' ), $this->key ) );
		// If you are creating a plugin, uncomment this line:
		// $this->template( array( \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' ), $this->key ) );
		// And then create your template at located at plugins/<your plugin>/dev/html/wkContact.phtml
		
		$this->template( array( \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' ), $this->key ) );
		parent::init();
	}
	
	/**
	 * Specify widget configuration
	 *
	 * @param	null|\IPS\Helpers\Form	$form	Form object
	 * @return	null|\IPS\Helpers\Form
	 */
	public function configuration( &$form=null )
	{
 		if ( $form === null )
		{
	 		$form = new \IPS\Helpers\Form;
 		}

 		// $$form->add( new \IPS\Helpers\Form\XXXX( .... ) );
 		// return $form;
 	} 
 	
 	 /**
 	 * Ran before saving widget configuration
 	 *
 	 * @param	array	$values	Values from form
 	 * @return	array
 	 */
 	public function preConfig( $values )
 	{
 		return $values;
 	}

	/**
	 * Render a widget
	 *
	 * @return	string
	 */
	public function render()
	{
		return $this->output( $this->configuration );
		// Use $this->output( $foo, $bar ); to return a string generated by the template set in init() or manually added via $widget->template( $callback );
		// Note you MUST route output through $this->output() rather than calling \IPS\Theme::i()->getTemplate() because of the way widgets are cached
	}
}]]></widget></widgets><htmlFiles><html filename="wkContact.phtml">PGlwczp0ZW1wbGF0ZSBwYXJhbWV0ZXJzPSIkZGF0YSwgJG9yaWVudGF0aW9uIiAvPgo8aDMgY2xhc3M9J2lwc1R5cGVfcmVzZXQgaXBzV2lkZ2V0X3RpdGxlJz57bGFuZz0id2tDb250YWN0In08L2gzPgo8ZGl2IGNsYXNzPSdpcHNQYWRfaGFsZiBpcHNXaWRnZXRfaW5uZXInPgogICAgPHVsIGNsYXNzPSdpcHNEYXRhTGlzdCBpcHNEYXRhTGlzdF9yZWR1Y2VkU3BhY2luZyc+CgkgICAge3tmb3JlYWNoIFxJUFNcRGI6OmkoKS0+c2VsZWN0KCAnKicsICdjb3JlX21lbWJlcnMnLCBcSVBTXERiOjppKCktPmluICggJ21lbWJlcl9pZCcsIGFycmF5KCBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9JRFV6eXRrb3duaWthMSApICkgKSBhcyAkcm93IH19CgkJe3skbWVtYmVyID0gXElQU1xNZW1iZXI6OmNvbnN0cnVjdEZyb21EYXRhKCAkcm93ICk7fX0gCiAgICAgICAgICAgIDxsaSBjbGFzcz0naXBzRGF0YUl0ZW0nPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naXBzRGF0YUl0ZW1faWNvbiBpcHNQb3NfdG9wJz4KICAgICAgICAgICAgICAgICAgICB7dGVtcGxhdGU9InVzZXJQaG90byIgYXBwPSJjb3JlIiBncm91cD0iZ2xvYmFsIiBwYXJhbXM9IiRtZW1iZXIsICd0aW55JyJ9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpcHNEYXRhSXRlbV9tYWluJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSdpcHNUeXBlX3NlY3Rpb25IZWFkJyBzdHlsZT0nZm9udC1zaXplOiAxNXB4Oyc+CgkJCQkgICAgCSAgICB7JG1lbWJlci0+bGluaygpfHJhd30KCQkJCQkgICAgICAgIHt7aWYgJG1lbWJlci0+aXNPbmxpbmUoKX19CgkJCQkJCQkJPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb25saW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib25saW5lIn0nPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb2ZmbGluZScgZGF0YS1pcHN0b29sdGlwPScnIF90aXRsZT0ne2xhbmc9Im9mZmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbmRpZn19CgkJCQkJICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdpcHNUeXBlX3Jlc2V0IGlwc1R5cGVfbm9ybWFsIGlwc1R5cGVfbGlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ne3VybD0iYXBwPWNvcmUmbW9kdWxlPW1lc3NhZ2luZyZjb250cm9sbGVyPW1lc3NlbmdlciZkbz1jb21wb3NlJnRvPXskbWVtYmVyLT5tZW1iZXJfaWR9IiBzZW9UZW1wbGF0ZT0ibWVzc2VuZ2VyX2NvbXBvc2UifScgZGF0YS1pcHNEaWFsb2cgZGF0YS1pcHNEaWFsb2ctdGl0bGU9J3tsYW5nPSJjb21wb3NlX25ldyJ9JyBkYXRhLWlwc0RpYWxvZy1mb3JjZVJlbG9hZCBkYXRhLWlwc0RpYWxvZy1yZW1vdGVTdWJtaXQgZGF0YS1pcHNEaWFsb2ctZmxhc2hNZXNzYWdlPSJ7bGFuZz0ibWVzc2FnZV9zZW50In0iPjxpIGNsYXNzPSdmYSBmYS1lbnZlbG9wZSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X1N0ZWFtMU9OT0ZGID09IDF9fQoJCQkJCQkJICA8YSBkYXRhLWlwc3Rvb2x0aXA9JycgaHJlZj0ne3NldHRpbmc9IndrQ29udGFjdF9TdGVhbTEifScgX3RpdGxlPSd7bGFuZz0id2tDb250YWN0X1N0ZWFtIn0nPjxpIGNsYXNzPSdmYSBmYS1zdGVhbSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2VuZGlmfX0KCQkJCQkJCXt7aWYgXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfR0cxT05PRkYgPT0gMX19CgkJCQkJCQkgICAgPGEgZGF0YS1pcHN0b29sdGlwPScnIGhyZWY9J2dnOntzZXR0aW5nPSJ3a0NvbnRhY3RfR0cxIn0nIF90aXRsZT0ne2xhbmc9IndrQ29udGFjdF9HRyJ9Jz48aSBjbGFzcz0nZmEgZmEtc3VuLW8nPjwvaT4gPC9hPgoJCQkJCQkJe3tlbmRpZn19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0naXBzUG9zX3JpZ2h0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXhwcmVzc2lvbj0iXElQU1xNZW1iZXJcR3JvdXA6OmxvYWQoICRyb3dbJ21lbWJlcl9ncm91cF9pZCddICktPmZvcm1hdHRlZE5hbWUiIHJhdz0idHJ1ZSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvbGk+CgkJCXt7ZW5kZm9yZWFjaH19CiAgICAgICAgICAgIHt7Zm9yZWFjaCBcSVBTXERiOjppKCktPnNlbGVjdCggJyonLCAnY29yZV9tZW1iZXJzJywgXElQU1xEYjo6aSgpLT5pbiAoICdtZW1iZXJfaWQnLCBhcnJheSggXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfSURVenl0a293bmlrYTIgKSApICkgYXMgJHJvdyB9fQoJCQl7eyRtZW1iZXIgPSBcSVBTXE1lbWJlcjo6Y29uc3RydWN0RnJvbURhdGEoICRyb3cgKTt9fSAKICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0naXBzRGF0YUl0ZW0nPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2lwc0RhdGFJdGVtX2ljb24gaXBzUG9zX3RvcCc+CiAgICAgICAgICAgICAgICAgICAgICAgIHt0ZW1wbGF0ZT0idXNlclBob3RvIiBhcHA9ImNvcmUiIGdyb3VwPSJnbG9iYWwiIHBhcmFtcz0iJG1lbWJlciwgJ3RpbnknIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpcHNEYXRhSXRlbV9tYWluJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSdpcHNUeXBlX3NlY3Rpb25IZWFkJyBzdHlsZT0nZm9udC1zaXplOiAxNXB4Oyc+CgkJCQkgICAgCSAgICB7JG1lbWJlci0+bGluaygpfHJhd30KCQkJCQkgICAgICAgIHt7aWYgJG1lbWJlci0+aXNPbmxpbmUoKX19CgkJCQkJCQkJPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb25saW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib25saW5lIn0nPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb2ZmbGluZScgZGF0YS1pcHN0b29sdGlwPScnIF90aXRsZT0ne2xhbmc9Im9mZmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbmRpZn19CgkJCQkJICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdpcHNUeXBlX3Jlc2V0IGlwc1R5cGVfbm9ybWFsIGlwc1R5cGVfbGlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ne3VybD0iYXBwPWNvcmUmbW9kdWxlPW1lc3NhZ2luZyZjb250cm9sbGVyPW1lc3NlbmdlciZkbz1jb21wb3NlJnRvPXskbWVtYmVyLT5tZW1iZXJfaWR9IiBzZW9UZW1wbGF0ZT0ibWVzc2VuZ2VyX2NvbXBvc2UifScgZGF0YS1pcHNEaWFsb2cgZGF0YS1pcHNEaWFsb2ctdGl0bGU9J3tsYW5nPSJjb21wb3NlX25ldyJ9JyBkYXRhLWlwc0RpYWxvZy1mb3JjZVJlbG9hZCBkYXRhLWlwc0RpYWxvZy1yZW1vdGVTdWJtaXQgZGF0YS1pcHNEaWFsb2ctZmxhc2hNZXNzYWdlPSJ7bGFuZz0ibWVzc2FnZV9zZW50In0iPjxpIGNsYXNzPSdmYSBmYS1lbnZlbG9wZSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X1N0ZWFtMk9OT0ZGID09IDF9fQoJCQkJCQkJICAgIDxhIGRhdGEtaXBzdG9vbHRpcD0nJyBocmVmPSd7c2V0dGluZz0id2tDb250YWN0X1N0ZWFtMiJ9JyBfdGl0bGU9J3tsYW5nPSJ3a0NvbnRhY3RfU3RlYW0ifSc+PGkgY2xhc3M9J2ZhIGZhLXN0ZWFtJz48L2k+IDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsKCQkJCQkJCXt7ZW5kaWZ9fQoJCQkJCQkJe3tpZiBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9HRzJPTk9GRiA9PSAxfX0KCQkJCQkJCSAgICA8YSBkYXRhLWlwc3Rvb2x0aXA9JycgaHJlZj0nZ2c6e3NldHRpbmc9IndrQ29udGFjdF9HRzIifScgX3RpdGxlPSd7bGFuZz0id2tDb250YWN0X0dHIn0nPjxpIGNsYXNzPSdmYSBmYS1zdW4tbyc+PC9pPiA8L2E+CgkJCQkJCQl7e2VuZGlmfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdpcHNQb3NfcmlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtleHByZXNzaW9uPSJcSVBTXE1lbWJlclxHcm91cDo6bG9hZCggJHJvd1snbWVtYmVyX2dyb3VwX2lkJ10gKS0+Zm9ybWF0dGVkTmFtZSIgcmF3PSJ0cnVlIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9saT4KCQkJe3tlbmRmb3JlYWNofX0KCQkJe3tmb3JlYWNoIFxJUFNcRGI6OmkoKS0+c2VsZWN0KCAnKicsICdjb3JlX21lbWJlcnMnLCBcSVBTXERiOjppKCktPmluICggJ21lbWJlcl9pZCcsIGFycmF5KCBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9JRFV6eXRrb3duaWthMyApICkgKSBhcyAkcm93IH19CgkJCXt7JG1lbWJlciA9IFxJUFNcTWVtYmVyOjpjb25zdHJ1Y3RGcm9tRGF0YSggJHJvdyApO319IAogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSdpcHNEYXRhSXRlbSc+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naXBzRGF0YUl0ZW1faWNvbiBpcHNQb3NfdG9wJz4KICAgICAgICAgICAgICAgICAgICAgICAge3RlbXBsYXRlPSJ1c2VyUGhvdG8iIGFwcD0iY29yZSIgZ3JvdXA9Imdsb2JhbCIgcGFyYW1zPSIkbWVtYmVyLCAndGlueScifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2lwc0RhdGFJdGVtX21haW4nPgogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J2lwc1R5cGVfc2VjdGlvbkhlYWQnIHN0eWxlPSdmb250LXNpemU6IDE1cHg7Jz4KCQkJCSAgICAJICAgIHskbWVtYmVyLT5saW5rKCl8cmF3fQoJCQkJCSAgICAgICAge3tpZiAkbWVtYmVyLT5pc09ubGluZSgpfX0KCQkJCQkJCQk8aSBjbGFzcz0nZmEgZmEtY2lyY2xlIGlwc09ubGluZVN0YXR1c19vbmxpbmUnIGRhdGEtaXBzdG9vbHRpcD0nJyBfdGl0bGU9J3tsYW5nPSJvbmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbHNlfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0nZmEgZmEtY2lyY2xlIGlwc09ubGluZVN0YXR1c19vZmZsaW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib2ZmbGluZSJ9Jz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VuZGlmfX0KCQkJCQkgICAgPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9J2lwc1R5cGVfcmVzZXQgaXBzVHlwZV9ub3JtYWwgaXBzVHlwZV9saWdodCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSd7dXJsPSJhcHA9Y29yZSZtb2R1bGU9bWVzc2FnaW5nJmNvbnRyb2xsZXI9bWVzc2VuZ2VyJmRvPWNvbXBvc2UmdG89eyRtZW1iZXItPm1lbWJlcl9pZH0iIHNlb1RlbXBsYXRlPSJtZXNzZW5nZXJfY29tcG9zZSJ9JyBkYXRhLWlwc0RpYWxvZyBkYXRhLWlwc0RpYWxvZy10aXRsZT0ne2xhbmc9ImNvbXBvc2VfbmV3In0nIGRhdGEtaXBzRGlhbG9nLWZvcmNlUmVsb2FkIGRhdGEtaXBzRGlhbG9nLXJlbW90ZVN1Ym1pdCBkYXRhLWlwc0RpYWxvZy1mbGFzaE1lc3NhZ2U9IntsYW5nPSJtZXNzYWdlX3NlbnQifSI+PGkgY2xhc3M9J2ZhIGZhLWVudmVsb3BlJz48L2k+IDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsKCQkJCQkJCXt7aWYgXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfU3RlYW0zT05PRkYgPT0gMX19CgkJCQkJCQkgICAgPGEgZGF0YS1pcHN0b29sdGlwPScnIGhyZWY9J3tzZXR0aW5nPSJ3a0NvbnRhY3RfU3RlYW0zIn0nIF90aXRsZT0ne2xhbmc9IndrQ29udGFjdF9TdGVhbSJ9Jz48aSBjbGFzcz0nZmEgZmEtc3RlYW0nPjwvaT4gPC9hPiZuYnNwOyZuYnNwOyZuYnNwOwoJCQkJCQkJe3tlbmRpZn19CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X0dHM09OT0ZGID09IDF9fQoJCQkJCQkJICAgIDxhIGRhdGEtaXBzdG9vbHRpcD0nJyBocmVmPSdnZzp7c2V0dGluZz0id2tDb250YWN0X0dHMyJ9JyBfdGl0bGU9J3tsYW5nPSJ3a0NvbnRhY3RfR0cifSc+PGkgY2xhc3M9J2ZhIGZhLXN1bi1vJz48L2k+IDwvYT4KCQkJCQkJCXt7ZW5kaWZ9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2lwc1Bvc19yaWdodCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2V4cHJlc3Npb249IlxJUFNcTWVtYmVyXEdyb3VwOjpsb2FkKCAkcm93WydtZW1iZXJfZ3JvdXBfaWQnXSApLT5mb3JtYXR0ZWROYW1lIiByYXc9InRydWUifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2xpPgoJCQl7e2VuZGZvcmVhY2h9fQoJCQl7e2ZvcmVhY2ggXElQU1xEYjo6aSgpLT5zZWxlY3QoICcqJywgJ2NvcmVfbWVtYmVycycsIFxJUFNcRGI6OmkoKS0+aW4gKCAnbWVtYmVyX2lkJywgYXJyYXkoIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X0lEVXp5dGtvd25pa2E0ICkgKSApIGFzICRyb3cgfX0KCQkJe3skbWVtYmVyID0gXElQU1xNZW1iZXI6OmNvbnN0cnVjdEZyb21EYXRhKCAkcm93ICk7fX0gCiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9J2lwc0RhdGFJdGVtJz4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpcHNEYXRhSXRlbV9pY29uIGlwc1Bvc190b3AnPgogICAgICAgICAgICAgICAgICAgICAgICB7dGVtcGxhdGU9InVzZXJQaG90byIgYXBwPSJjb3JlIiBncm91cD0iZ2xvYmFsIiBwYXJhbXM9IiRtZW1iZXIsICd0aW55JyJ9CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naXBzRGF0YUl0ZW1fbWFpbic+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz0naXBzVHlwZV9zZWN0aW9uSGVhZCcgc3R5bGU9J2ZvbnQtc2l6ZTogMTVweDsnPgoJCQkJICAgIAkgICAgeyRtZW1iZXItPmxpbmsoKXxyYXd9CgkJCQkJICAgICAgICB7e2lmICRtZW1iZXItPmlzT25saW5lKCl9fQoJCQkJCQkJCTxpIGNsYXNzPSdmYSBmYS1jaXJjbGUgaXBzT25saW5lU3RhdHVzX29ubGluZScgZGF0YS1pcHN0b29sdGlwPScnIF90aXRsZT0ne2xhbmc9Im9ubGluZSJ9Jz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2Vsc2V9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSdmYSBmYS1jaXJjbGUgaXBzT25saW5lU3RhdHVzX29mZmxpbmUnIGRhdGEtaXBzdG9vbHRpcD0nJyBfdGl0bGU9J3tsYW5nPSJvZmZsaW5lIn0nPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZW5kaWZ9fQoJCQkJCSAgICA8L2gzPgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0naXBzVHlwZV9yZXNldCBpcHNUeXBlX25vcm1hbCBpcHNUeXBlX2xpZ2h0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9J3t1cmw9ImFwcD1jb3JlJm1vZHVsZT1tZXNzYWdpbmcmY29udHJvbGxlcj1tZXNzZW5nZXImZG89Y29tcG9zZSZ0bz17JG1lbWJlci0+bWVtYmVyX2lkfSIgc2VvVGVtcGxhdGU9Im1lc3Nlbmdlcl9jb21wb3NlIn0nIGRhdGEtaXBzRGlhbG9nIGRhdGEtaXBzRGlhbG9nLXRpdGxlPSd7bGFuZz0iY29tcG9zZV9uZXcifScgZGF0YS1pcHNEaWFsb2ctZm9yY2VSZWxvYWQgZGF0YS1pcHNEaWFsb2ctcmVtb3RlU3VibWl0IGRhdGEtaXBzRGlhbG9nLWZsYXNoTWVzc2FnZT0ie2xhbmc9Im1lc3NhZ2Vfc2VudCJ9Ij48aSBjbGFzcz0nZmEgZmEtZW52ZWxvcGUnPjwvaT4gPC9hPiZuYnNwOyZuYnNwOyZuYnNwOwoJCQkJCQkJe3tpZiBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9TdGVhbTRPTk9GRiA9PSAxfX0KCQkJCQkJCSAgICA8YSBkYXRhLWlwc3Rvb2x0aXA9JycgaHJlZj0ne3NldHRpbmc9IndrQ29udGFjdF9TdGVhbTQifScgX3RpdGxlPSd7bGFuZz0id2tDb250YWN0X1N0ZWFtIn0nPjxpIGNsYXNzPSdmYSBmYS1zdGVhbSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2VuZGlmfX0KCQkJCQkJCXt7aWYgXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfR0c0T05PRkYgPT0gMX19CgkJCQkJCQkgICAgPGEgZGF0YS1pcHN0b29sdGlwPScnIGhyZWY9J2dnOntzZXR0aW5nPSJ3a0NvbnRhY3RfR0c0In0nIF90aXRsZT0ne2xhbmc9IndrQ29udGFjdF9HRyJ9Jz48aSBjbGFzcz0nZmEgZmEtc3VuLW8nPjwvaT4gPC9hPgoJCQkJCQkJe3tlbmRpZn19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0naXBzUG9zX3JpZ2h0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZXhwcmVzc2lvbj0iXElQU1xNZW1iZXJcR3JvdXA6OmxvYWQoICRyb3dbJ21lbWJlcl9ncm91cF9pZCddICktPmZvcm1hdHRlZE5hbWUiIHJhdz0idHJ1ZSJ9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvbGk+CgkJCXt7ZW5kZm9yZWFjaH19CgkJCXt7Zm9yZWFjaCBcSVBTXERiOjppKCktPnNlbGVjdCggJyonLCAnY29yZV9tZW1iZXJzJywgXElQU1xEYjo6aSgpLT5pbiAoICdtZW1iZXJfaWQnLCBhcnJheSggXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfSURVenl0a293bmlrYTUgKSApICkgYXMgJHJvdyB9fQoJCQl7eyRtZW1iZXIgPSBcSVBTXE1lbWJlcjo6Y29uc3RydWN0RnJvbURhdGEoICRyb3cgKTt9fSAKICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0naXBzRGF0YUl0ZW0nPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2lwc0RhdGFJdGVtX2ljb24gaXBzUG9zX3RvcCc+CiAgICAgICAgICAgICAgICAgICAgICAgIHt0ZW1wbGF0ZT0idXNlclBob3RvIiBhcHA9ImNvcmUiIGdyb3VwPSJnbG9iYWwiIHBhcmFtcz0iJG1lbWJlciwgJ3RpbnknIn0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdpcHNEYXRhSXRlbV9tYWluJz4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPSdpcHNUeXBlX3NlY3Rpb25IZWFkJyBzdHlsZT0nZm9udC1zaXplOiAxNXB4Oyc+CgkJCQkgICAgCSAgICB7JG1lbWJlci0+bGluaygpfHJhd30KCQkJCQkgICAgICAgIHt7aWYgJG1lbWJlci0+aXNPbmxpbmUoKX19CgkJCQkJCQkJPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb25saW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib25saW5lIn0nPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxzZX19CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9J2ZhIGZhLWNpcmNsZSBpcHNPbmxpbmVTdGF0dXNfb2ZmbGluZScgZGF0YS1pcHN0b29sdGlwPScnIF90aXRsZT0ne2xhbmc9Im9mZmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbmRpZn19CgkJCQkJICAgIDwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdpcHNUeXBlX3Jlc2V0IGlwc1R5cGVfbm9ybWFsIGlwc1R5cGVfbGlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0ne3VybD0iYXBwPWNvcmUmbW9kdWxlPW1lc3NhZ2luZyZjb250cm9sbGVyPW1lc3NlbmdlciZkbz1jb21wb3NlJnRvPXskbWVtYmVyLT5tZW1iZXJfaWR9IiBzZW9UZW1wbGF0ZT0ibWVzc2VuZ2VyX2NvbXBvc2UifScgZGF0YS1pcHNEaWFsb2cgZGF0YS1pcHNEaWFsb2ctdGl0bGU9J3tsYW5nPSJjb21wb3NlX25ldyJ9JyBkYXRhLWlwc0RpYWxvZy1mb3JjZVJlbG9hZCBkYXRhLWlwc0RpYWxvZy1yZW1vdGVTdWJtaXQgZGF0YS1pcHNEaWFsb2ctZmxhc2hNZXNzYWdlPSJ7bGFuZz0ibWVzc2FnZV9zZW50In0iPjxpIGNsYXNzPSdmYSBmYS1lbnZlbG9wZSc+PC9pPiA8L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X1N0ZWFtNU9OT0ZGID09IDF9fQoJCQkJCQkJICAgIDxhIGRhdGEtaXBzdG9vbHRpcD0nJyBocmVmPSd7c2V0dGluZz0id2tDb250YWN0X1N0ZWFtNSJ9JyBfdGl0bGU9J3tsYW5nPSJ3a0NvbnRhY3RfU3RlYW0ifSc+PGkgY2xhc3M9J2ZhIGZhLXN0ZWFtJz48L2k+IDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsKCQkJCQkJCXt7ZW5kaWZ9fQoJCQkJCQkJe3tpZiBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9HRzVPTk9GRiA9PSAxfX0KCQkJCQkJCSAgICA8YSBkYXRhLWlwc3Rvb2x0aXA9JycgaHJlZj0nZ2c6e3NldHRpbmc9IndrQ29udGFjdF9HRzUifScgX3RpdGxlPSd7bGFuZz0id2tDb250YWN0X0dHIn0nPjxpIGNsYXNzPSdmYSBmYS1zdW4tbyc+PC9pPiA8L2E+CgkJCQkJCQl7e2VuZGlmfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdpcHNQb3NfcmlnaHQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtleHByZXNzaW9uPSJcSVBTXE1lbWJlclxHcm91cDo6bG9hZCggJHJvd1snbWVtYmVyX2dyb3VwX2lkJ10gKS0+Zm9ybWF0dGVkTmFtZSIgcmF3PSJ0cnVlIn0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9saT4KCQkJe3tlbmRmb3JlYWNofX0KCQkJe3tmb3JlYWNoIFxJUFNcRGI6OmkoKS0+c2VsZWN0KCAnKicsICdjb3JlX21lbWJlcnMnLCBcSVBTXERiOjppKCktPmluICggJ21lbWJlcl9pZCcsIGFycmF5KCBcSVBTXFNldHRpbmdzOjppKCktPndrQ29udGFjdF9JRFV6eXRrb3duaWthNiApICkgKSBhcyAkcm93IH19CgkJCXt7JG1lbWJlciA9IFxJUFNcTWVtYmVyOjpjb25zdHJ1Y3RGcm9tRGF0YSggJHJvdyApO319IAogICAgICAgICAgICAgICAgPGxpIGNsYXNzPSdpcHNEYXRhSXRlbSc+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0naXBzRGF0YUl0ZW1faWNvbiBpcHNQb3NfdG9wJz4KICAgICAgICAgICAgICAgICAgICAgICAge3RlbXBsYXRlPSJ1c2VyUGhvdG8iIGFwcD0iY29yZSIgZ3JvdXA9Imdsb2JhbCIgcGFyYW1zPSIkbWVtYmVyLCAndGlueScifQogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2lwc0RhdGFJdGVtX21haW4nPgogICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J2lwc1R5cGVfc2VjdGlvbkhlYWQnIHN0eWxlPSdmb250LXNpemU6IDE1cHg7Jz4KCQkJCSAgICAJICAgIHskbWVtYmVyLT5saW5rKCl8cmF3fQoJCQkJCSAgICAgICAge3tpZiAkbWVtYmVyLT5pc09ubGluZSgpfX0KCQkJCQkJCQk8aSBjbGFzcz0nZmEgZmEtY2lyY2xlIGlwc09ubGluZVN0YXR1c19vbmxpbmUnIGRhdGEtaXBzdG9vbHRpcD0nJyBfdGl0bGU9J3tsYW5nPSJvbmxpbmUifSc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlbHNlfX0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0nZmEgZmEtY2lyY2xlIGlwc09ubGluZVN0YXR1c19vZmZsaW5lJyBkYXRhLWlwc3Rvb2x0aXA9JycgX3RpdGxlPSd7bGFuZz0ib2ZmbGluZSJ9Jz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VuZGlmfX0KCQkJCQkgICAgPC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9J2lwc1R5cGVfcmVzZXQgaXBzVHlwZV9ub3JtYWwgaXBzVHlwZV9saWdodCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSd7dXJsPSJhcHA9Y29yZSZtb2R1bGU9bWVzc2FnaW5nJmNvbnRyb2xsZXI9bWVzc2VuZ2VyJmRvPWNvbXBvc2UmdG89eyRtZW1iZXItPm1lbWJlcl9pZH0iIHNlb1RlbXBsYXRlPSJtZXNzZW5nZXJfY29tcG9zZSJ9JyBkYXRhLWlwc0RpYWxvZyBkYXRhLWlwc0RpYWxvZy10aXRsZT0ne2xhbmc9ImNvbXBvc2VfbmV3In0nIGRhdGEtaXBzRGlhbG9nLWZvcmNlUmVsb2FkIGRhdGEtaXBzRGlhbG9nLXJlbW90ZVN1Ym1pdCBkYXRhLWlwc0RpYWxvZy1mbGFzaE1lc3NhZ2U9IntsYW5nPSJtZXNzYWdlX3NlbnQifSI+PGkgY2xhc3M9J2ZhIGZhLWVudmVsb3BlJz48L2k+IDwvYT4mbmJzcDsmbmJzcDsmbmJzcDsKCQkJCQkJCXt7aWYgXElQU1xTZXR0aW5nczo6aSgpLT53a0NvbnRhY3RfU3RlYW02T05PRkYgPT0gMX19CgkJCQkJCQkgICAgPGEgZGF0YS1pcHN0b29sdGlwPScnIGhyZWY9J3tzZXR0aW5nPSJ3a0NvbnRhY3RfU3RlYW02In0nIF90aXRsZT0ne2xhbmc9IndrQ29udGFjdF9TdGVhbSJ9Jz48aSBjbGFzcz0nZmEgZmEtc3RlYW0nPjwvaT4gPC9hPiZuYnNwOyZuYnNwOyZuYnNwOwoJCQkJCQkJe3tlbmRpZn19CgkJCQkJCQl7e2lmIFxJUFNcU2V0dGluZ3M6OmkoKS0+d2tDb250YWN0X0dHNk9OT0ZGID09IDF9fQoJCQkJCQkJICAgIDxhIGRhdGEtaXBzdG9vbHRpcD0nJyBocmVmPSdnZzp7c2V0dGluZz0id2tDb250YWN0X0dHNiJ9JyBfdGl0bGU9J3tsYW5nPSJ3a0NvbnRhY3RfR0cifSc+PGkgY2xhc3M9J2ZhIGZhLXN1bi1vJz48L2k+IDwvYT4KCQkJCQkJCXt7ZW5kaWZ9fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2lwc1Bvc19yaWdodCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2V4cHJlc3Npb249IlxJUFNcTWVtYmVyXEdyb3VwOjpsb2FkKCAkcm93WydtZW1iZXJfZ3JvdXBfaWQnXSApLT5mb3JtYXR0ZWROYW1lIiByYXc9InRydWUifQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2xpPgoJCXt7ZW5kZm9yZWFjaH19CiAgICAgPC91bD4KPC9kaXY+</html></htmlFiles><cssFiles/><jsFiles/><resourcesFiles/><lang><word key="block_wkContact" js="0">Kontakt z administracj</word><word key="block_wkContact_desc" js="0">Wtyczka wywietla kontakt z adminami</word><word key="wkContact_1" js="0">Kontakt #1</word><word key="wkContact_2" js="0">Kontakt #2</word><word key="wkContact_3" js="0">Kontakt #3</word><word key="wkContact_4" js="0">Kontakt #4</word><word key="wkContact_5" js="0">Kontakt #5</word><word key="wkContact_6" js="0">Kontakt #6</word><word key="wkContact" js="0">Kontakt z administracj</word><word key="wkContact_Steam" js="0">Kliknij, aby wywietli profil steam</word><word key="wkContact_GG" js="0">Kliknij, aby napisa wiadomo lub skopiowa numer Gadu-Gadu</word><word key="wkContact_IDUzytkownika1" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika2" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika3" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika4" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika5" js="0">ID uytkownika</word><word key="wkContact_IDUzytkownika6" js="0">ID uytkownika</word><word key="wkContact_Steam1" js="0">Steam</word><word key="wkContact_Steam1_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam2" js="0">Steam</word><word key="wkContact_Steam2_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam3" js="0">Steam</word><word key="wkContact_Steam3_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam4" js="0">Steam</word><word key="wkContact_Steam4_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam5" js="0">Steam</word><word key="wkContact_Steam5_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_Steam6" js="0">Steam</word><word key="wkContact_Steam6_desc" js="0">Podaj adres URL profilu Steam</word><word key="wkContact_GG1" js="0">Gadu-Gadu</word><word key="wkContact_GG2" js="0">Gadu-Gadu</word><word key="wkContact_GG3" js="0">Gadu-Gadu</word><word key="wkContact_GG4" js="0">Gadu-Gadu</word><word key="wkContact_GG5" js="0">Gadu-Gadu</word><word key="wkContact_GG6" js="0">Gadu-Gadu</word><word key="wkContact_Steam1ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam2ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam3ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam4ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam5ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_Steam6ONOFF" js="0">Ikona Steamu wczona?</word><word key="wkContact_GG1ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG2ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG3ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG4ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG5ONOFF" js="0">Ikona Gadu-Gadu wczona?</word><word key="wkContact_GG6ONOFF" js="0">Ikona Gadu-Gadu wczona?</word></lang><versions><version long="10000" human="1.0.0"><![CDATA[//<?php


/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
	exit;
}

/**
 * Install Code
 */
class ips_plugins_setup_install
{
	/**
	 * ...
	 *
	 * @return	array	If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
	 */
	public function step1()
	{
		

		return TRUE;
	}
	
	// You can create as many additional methods (step2, step3, etc.) as is necessary.
	// Each step will be executed in a new HTTP request
}]]></version><version long="10001" human="1.0.1"><![CDATA[//<?php


/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
	exit;
}

/**
 * 1.0.1 Upgrade Code
 */
class ips_plugins_setup_upg_10001
{
	/**
	 * ...
	 *
	 * @return	array	If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
	 */
	public function step1()
	{
		

		return TRUE;
	}
	
	// You can create as many additional methods (step2, step3, etc.) as is necessary.
	// Each step will be executed in a new HTTP request
}]]></version><version long="10002" human="1.0.2"><![CDATA[//<?php


/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
	exit;
}

/**
 * 1.0.2 Upgrade Code
 */
class ips_plugins_setup_upg_10002
{
	/**
	 * ...
	 *
	 * @return	array	If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
	 */
	public function step1()
	{
		

		return TRUE;
	}
	
	// You can create as many additional methods (step2, step3, etc.) as is necessary.
	// Each step will be executed in a new HTTP request
}]]></version><version long="10003" human="1.0.3"><![CDATA[//<?php


/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
	header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
	exit;
}

/**
 * 1.0.3 Upgrade Code
 */
class ips_plugins_setup_upg_10003
{
	/**
	 * ...
	 *
	 * @return	array	If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
	 */
	public function step1()
	{
		

		return TRUE;
	}
	
	// You can create as many additional methods (step2, step3, etc.) as is necessary.
	// Each step will be executed in a new HTTP request
}]]></version></versions></plugin>

Function Calls

None

Variables

None

Stats

MD5 a151482a73fcdf50755ada7d2b0cb708
Eval Count 0
Decode Time 172 ms