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 |
Stats
MD5 | a151482a73fcdf50755ada7d2b0cb708 |
Eval Count | 0 |
Decode Time | 172 ms |