From 886c5600086187ce67a8f8084896db04dcccf113 Mon Sep 17 00:00:00 2001
From: John Mertic
{{$ADMIN_EDIT}}
{{if $panelCount == 0}}
diff --git a/include/ListView/ListViewData.php b/include/ListView/ListViewData.php
index 23b47742..bae4ddd4 100644
--- a/include/ListView/ListViewData.php
+++ b/include/ListView/ListViewData.php
@@ -496,8 +496,9 @@ class ListViewData {
foreach( $basicSearchFields as $basicSearchField)
{
- $field_name = $basicSearchField['name'] . "_basic";
- if( isset($_REQUEST[$field_name]) && (!isset($basicSearchField['type']) || $basicSearchField['type'] == 'text') )
+ $field_name = (is_array($basicSearchField) && isset($basicSearchField['name'])) ? $basicSearchField['name'] : $basicSearchField;
+ $field_name .= "_basic";
+ if( isset($_REQUEST[$field_name]) && ( !is_array($basicSearchField) || !isset($basicSearchField['type']) || $basicSearchField['type'] == 'text') )
{
$queryString = htmlentities($_REQUEST[$field_name]);
break;
diff --git a/include/ListView/ListViewPagination.tpl b/include/ListView/ListViewPagination.tpl
index 7fff2ac9..6f85bc72 100644
--- a/include/ListView/ListViewPagination.tpl
+++ b/include/ListView/ListViewPagination.tpl
@@ -58,7 +58,7 @@
{sugar_action_menu id=$link_action_id params=$actionsLink theme="Sugar"}
-
+ { if $actionDisabledLink ne "" } {/if}
{$selectedObjectsSpan}
diff --git a/include/MVC/View/views/view.favorites.php b/include/MVC/View/views/view.favorites.php
index 503c2dae..785ce804 100644
--- a/include/MVC/View/views/view.favorites.php
+++ b/include/MVC/View/views/view.favorites.php
@@ -54,7 +54,8 @@ class ViewFavorites extends SugarView
{
$favorites = new SugarFavorites();
- $results = $favorites->getUserFavoritesByModule($this->module,$GLOBALS['current_user']);
+ $favorites_max_viewed = (!empty($GLOBALS['sugar_config']['favorites_max_viewed']))? $GLOBALS['sugar_config']['favorites_max_viewed'] : 10;
+ $results = $favorites->getUserFavoritesByModule($this->module,$GLOBALS['current_user'], "sugarfavorites.date_modified DESC ", $favorites_max_viewed);
$items = array();
foreach ( $results as $key => $row ) {
$items[$key]['label'] = $row->record_name;
diff --git a/include/SearchForm/tpls/SugarSpot.tpl b/include/SearchForm/tpls/SugarSpot.tpl
index 4284ee21..e375b075 100644
--- a/include/SearchForm/tpls/SugarSpot.tpl
+++ b/include/SearchForm/tpls/SugarSpot.tpl
@@ -71,7 +71,9 @@
{/foreach}
- View all results
+
+ {$appStrings.LNK_SEARCH_NONFTS_VIEW_ALL}
+
{else}
{$appStrings.LBL_EMAIL_SEARCH_NO_RESULTS}
diff --git a/include/Smarty/plugins/function.sugar_action_menu.php b/include/Smarty/plugins/function.sugar_action_menu.php
index e65e96a5..fb7938fb 100644
--- a/include/Smarty/plugins/function.sugar_action_menu.php
+++ b/include/Smarty/plugins/function.sugar_action_menu.php
@@ -50,6 +50,7 @@ if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
* 'buttons' => list of button htmls, such as ( html_element1, html_element2, ..., html_element_n),
* 'id' => id property for ul element
* 'class' => class property for ul element
+ * 'flat' => controls the display of the menu as a dropdown or flat buttons
* @param $smarty
*
* @return string - compatible sugarActionMenu structure, such as
@@ -116,7 +117,7 @@ if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
*/
function smarty_function_sugar_action_menu($params, &$smarty)
{
- $theme = !empty($params['theme']) ? $params['theme'] : SugarThemeRegistry::current()->name;
+ $flat = !empty($params['flat']) ? $params['flat'] : false;
if( !empty($params['params']) ) {
$addition_params = $params['params'];
@@ -127,7 +128,7 @@ function smarty_function_sugar_action_menu($params, &$smarty)
if(empty($params['buttons']))
return '';
- if(is_array($params['buttons']) && $theme != 'Classic') {
+ if(is_array($params['buttons']) && !$flat) {
$menus = array(
'html' => array_shift($params['buttons']),
diff --git a/include/Smarty/plugins/function.sugar_button.php b/include/Smarty/plugins/function.sugar_button.php
index 3cfa0364..1a9b24cd 100644
--- a/include/Smarty/plugins/function.sugar_button.php
+++ b/include/Smarty/plugins/function.sugar_button.php
@@ -395,61 +395,47 @@ function smarty_function_sugar_button($params, &$smarty)
} //switch
- if($params['appendTo']) {
+ if(isset($params['appendTo'])) {
$smarty->append($params['appendTo'], $output);
return;
}
return $output;
} else if(is_array($type) && isset($type['sugar_html'])) {
- require_once('function.sugar_menu.php');
- $sugar_html = $type['sugar_html'];
- if(isset($sugar_html['html'])) {
- $output = parse_html_tag($sugar_html['html']);
- if(is_array($output)) {
- $sugar_html = array(
- 'type' => $output['type'],
- 'tag' => $output['tag'],
- 'value' => $output['value'],
- 'self_closing' => $output['self_closing'],
- );
- unset($output['type']);
- unset($output['tag']);
- unset($output['value']);
- unset($output['self_closing']);
- $sugar_html['htmlOptions'] = $output;
- }
- }
+ require_once('include/SugarHtml/SugarHtml.php');
- $input_types = array(
- 'submit', 'button', 'hidden', 'checkbox', 'input'
- );
-
- if(in_array($sugar_html['type'], $input_types)) {
- $sugar_html['htmlOptions']['type'] = (empty($sugar_html['htmlOptions']['type'])) ? $sugar_html['type'] : $sugar_html['htmlOptions']['type'];
- $sugar_html['htmlOptions']['value'] = $sugar_html['value'];
- $sugar_html['htmlOptions']['onclick'] = $js_form.str_replace("this.form", "_form", $sugar_html['htmlOptions']['onclick']);
- if($sugar_html['type'] == "submit") {
- $sugar_html['htmlOptions']['type'] = "button";
- if(substr($sugar_html['htmlOptions']['onclick'], -1) != ';')
- $sugar_html['htmlOptions']['onclick'] .= ";";
- $sugar_html['htmlOptions']['onclick'] .= "_form.submit();";
- }
- $output = open_tag('input', $sugar_html['htmlOptions'], true);
- }
- if(isset($sugar_html['template'])) {
- $output = strtr($sugar_html['template'], array(
- '[CONTENT]' => $output)
- );
- }
- if($params['appendTo']) {
+ $dom_tree = SugarHtml::parseSugarHtml($type['sugar_html']);
+ replaceFormClick($dom_tree, $js_form);
+ $output = SugarHtml::createHtml($dom_tree);
+
+ if(isset($params['appendTo'])) {
$smarty->append($params['appendTo'], $output);
return;
}
return $output;
} else if(is_array($type) && isset($type['customCode'])) {
+ require_once('include/SugarHtml/SugarHtml.php');
+
+ $dom_tree = SugarHtml::parseHtmlTag($type['customCode']);
+ $hidden_exists = false;
+
+ replaceFormClick($dom_tree, $js_form, $hidden_exists);
+ if($hidden_exists) {
+ //If the customCode contains hidden fields, the extracted hidden fields need to append in the original form
+ $form = $smarty->get_template_vars('form');
+ $hidden_fields = $dom_tree;
+ extractHiddenInputs($hidden_fields);
+ if(!isset($form)) {
+ $form = array();
+ }
+ if(!isset($form['hidden'])) {
+ $form['hidden'] = array();
+ }
+ $form['hidden'][] = SugarHtml::createHtml($hidden_fields);
+ $smarty->assign('form', $form);
+ }
+ $output = SugarHtml::createHtml($dom_tree);
- $output = $type['customCode']; ;
- if($params['appendTo']) {
+ if(isset($params['appendTo'])) {
$smarty->append($params['appendTo'], $output);
return;
}
@@ -457,4 +443,83 @@ function smarty_function_sugar_button($params, &$smarty)
}
}
+/**
+ * Bug#51862: Reproduce the JS onclick for upgraded instances
+ *
+ * @param array $dom_tree - Cascade array form generated by SugarHtml::parseHtmlTag
+ * @param string $js_form - JS getter to assign _form object by ID
+ * @param bool $hidden_field_exists - whether the selected element contains hidden fields or not
+ * @return array - two boolean variables.
+ * $set_submit - whether the replace operation is excuted or not
+ * $is_hidden_field - where current attributes contains the key "hidden" or not
+ */
+function replaceFormClick(&$dom_tree = array(), $js_form = '', &$hidden_field_exists = false) {
+ $set_submit = false;
+ $is_hidden_field = false;
+ //if the code is wrapped with the form element, it will escape the operation for JS replacement
+ if(isset($dom_tree['tag']) && $dom_tree['tag'] == 'form')
+ return false;
+
+ if(isset($dom_tree['type']) && $dom_tree['type'] == 'hidden') {
+ $is_hidden_field = true;
+ }
+
+ //Replace the JS syntax where the sugar_button contains the event handler for this.form
+ if(isset($dom_tree['onclick'])) {
+ if(strpos($dom_tree['onclick'], "this.form") !== false) {
+ $dom_tree['onclick'] = $js_form.str_replace("this.form", "_form", $dom_tree['onclick']);
+ if(substr($dom_tree['onclick'], -1) != ';')
+ $dom_tree['onclick'] .= ";";
+ $dom_tree['onclick'] .= "_form.submit();";
+ $set_submit = true;
+ }
+ }
+ foreach($dom_tree as $key => $sub_tree) {
+ if(is_array($sub_tree)) {
+ list($_submit, $_hidden) = replaceFormClick($dom_tree[$key], $js_form, $hidden_field_exists);
+ $set_submit = ($set_submit) ? $set_submit : $_submit;
+ $is_hidden_field = ($is_hidden_field) ? $is_hidden_field : $_hidden;
+ }
+ }
+
+ if($set_submit && isset($dom_tree['type'])) {
+ $dom_tree['type'] = "button";
+ $set_submit = false;
+ }
+ if($is_hidden_field && isset($dom_tree['tag']) && $dom_tree['tag'] == 'input' ) {
+ $hidden_field_exists = true;
+ $is_hidden_field = false;
+ }
+
+ return array($set_submit, $is_hidden_field);
+}
+
+/**
+ * Bug#51862: Extract hidden field form the original dom structure
+ * @param array $dom_tree - Cascade array form generated by SugarHtml::parseHtmlTag
+ */
+function extractHiddenInputs(&$dom_tree = array()) {
+ $allow_types = array(
+ 'hidden'
+ );
+ //all hidden fields in the form elements must NOT attach in the original form
+ if(isset($dom_tree['tag']) && $dom_tree['tag'] == 'form') {
+ $dom_tree = array();
+ }
+ foreach($dom_tree as $key => $sub_tree) {
+ if(is_numeric($key) && isset($sub_tree['tag']) && $sub_tree['tag'] == 'input') {
+ if( !isset($sub_tree['type']) || in_array($sub_tree['type'], $allow_types) === false ) {
+ unset($dom_tree[$key]);
+ }
+ } else if(is_array($sub_tree)) {
+ extractHiddenInputs($dom_tree[$key]);
+ }
+ }
+ if(isset($dom_tree['tag']) && $dom_tree['tag'] == 'input') {
+ if( !isset($dom_tree['type']) || in_array($dom_tree['type'], $allow_types) === false ) {
+ $dom_tree = array();
+ }
+ }
+}
+
diff --git a/include/Smarty/plugins/function.sugar_menu.php b/include/Smarty/plugins/function.sugar_menu.php
index b1ffd1f1..83fe0948 100644
--- a/include/Smarty/plugins/function.sugar_menu.php
+++ b/include/Smarty/plugins/function.sugar_menu.php
@@ -85,6 +85,7 @@ if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
*
* * @author Justin Park (jpark@sugarcrm.com)
*/
+require_once('include/SugarHtml/SugarHtml.php');
function smarty_function_sugar_menu($params, &$smarty)
{
$root_options = array(
@@ -95,119 +96,22 @@ function smarty_function_sugar_menu($params, &$smarty)
$root_options[$attr] = $value;
}
}
- $output = open_tag("ul", $root_options);
+ $output = SugarHtml::createOpenTag("ul", $root_options);
foreach($params['items'] as $item) {
if(strpos($item['html'], "") === 0) {
$output .= $item['html'];
continue;
}
- $output .= open_tag('li', !empty($params['itemOptions']) ? $params['itemOptions'] : array()).$item['html'];
+ $output .= SugarHtml::createOpenTag('li', !empty($params['itemOptions']) ? $params['itemOptions'] : array())
+ .$item['html'];
if(isset($item['items']) && count($item['items'])) {
$output .= smarty_function_sugar_menu(array(
'items' => $item['items'],
'htmlOptions' => !empty($params['submenuHtmlOptions']) ? $params['submenuHtmlOptions'] : array()
), $smarty);
}
- $output .= "";
- }
- $output .= '';
- return $output;
-}
-
-function open_tag($tagName, $params = array(), $self_closing = false) {
-
- $options = "";
- $self_closing_tag = ($self_closing) ? "/" : "";
- if(empty($params))
- return "<{$tagName}{$self_closing_tag}>";
-
- foreach($params as $attr => $value) {
- if($value)
- $options .= $attr.'="'.$value.'" ';
- }
- return "<{$tagName} {$options}{$self_closing_tag}>";
-}
-
-function parse_html_tag($code) {
- $SINGLE_QUOTE = "'";
- $DOUBLE_QUOTE = '"';
- $ASSIGN_SIGN = "=";
- $TAG_BEGIN = "<";
- $TAG_END = ">";
- $quote_encoded = false;
- $cache = array();
- $var_name = '';
- $var_assign = false;
- $start_pos = strpos($code, ' ') ? strpos($code, ' ') : strpos($code, $TAG_END);
- if(substr($code, 0, 1) != $TAG_BEGIN || $start_pos === false) {
- return $code;
- }
- $tag = substr($code, 1, $start_pos - 1);
- $closing_tag = ''.$tag;
- $end_pos = strpos($code, $closing_tag, $start_pos + 1);
- $output = array(
- 'tag' => $tag
- );
- if($end_pos === false) {
- $output['self_closing'] = true;
- $end_pos = (substr($code, -2) == '/>') ? -2 : -1;
- $code = substr($code, $start_pos + 1, $end_pos);
- } else {
- $output['self_closing'] = false;
- $code = substr($code, $start_pos + 1, $end_pos - $start_pos - 1);
- }
- for($i = 0; $i < strlen($code) ; $i ++) {
- $char = $code[$i];
- if($char == $SINGLE_QUOTE || $char == $DOUBLE_QUOTE) {
- if(empty($quote_type)) {
- $quote_encoded = true;
- $quote_type = $char;
- } else if ($quote_type == $char) {
- if(!empty($cache)) {
- $string = implode('', $cache);
- if(empty($var_name)) {
- $var_name = $string;
- } else if($var_assign) {
- $output[$var_name] = $string;
- unset($var_name);
- }
- }
- $quote_type = '';
- $var_assign = false;
- $cache = array();
- $quote_encoded = false;
- } else {
- array_push($cache, $char);
- }
- } else if ( !$quote_encoded && $char == ' ' ) {
- if(!empty($cache)) {
- $string = implode('', $cache);
- if(empty($var_name)) {
- $var_name = $string;
- } else if($var_assign) {
- $output[$var_name] = $string;
- unset($var_name);
- }
- $quote_encoded = false;
- $var_assign = false;
- $cache = array();
- }
- } else if ( !$quote_encoded && $char == $ASSIGN_SIGN ) {
- if(!empty($var_name)) {
- $output[$var_name] = '';
- }
- $string = implode('', $cache);
- $var_name = $string;
- $var_assign = true;
- $cache = array();
- } else if ( !$quote_encoded && $char == $TAG_END ) {
- break;
- } else {
- array_push($cache, $char);
- }
- }
- if($output['self_closing'] === false) {
- $output['container'] = substr($code, $i + 1);
+ $output .= SugarHtml::createCloseTag("li");
}
+ $output .= SugarHtml::createCloseTag("ul");
return $output;
}
diff --git a/include/SugarHtml/SugarHtml.php b/include/SugarHtml/SugarHtml.php
new file mode 100644
index 00000000..014d0b64
--- /dev/null
+++ b/include/SugarHtml/SugarHtml.php
@@ -0,0 +1,453 @@
+";
+ const SMARTY_TAG_BEGIN = "{";
+ const SMARTY_TAG_END = "}";
+ const CLAUSE_TAG_BEGIN = "(";
+ const CLAUSE_TAG_END = ")";
+
+ /**
+ * @var integer the counter for generating automatic input field names.
+ */
+ public static $count=0;
+
+ /**
+ * @static
+ * Create an open html element
+ *
+ * @param String $tagName - the tag name
+ * @param array $params - the element attributes
+ * @param bool $self_closing - whether the element is self-closing or not
+ * @return string - generated html string
+ */
+ public static function createOpenTag($tagName, $params = array(), $self_closing = false) {
+
+ $self_closing_tag = ($self_closing) ? "/" : "";
+ if(empty($params))
+ return "<{$tagName}{$self_closing_tag}>";
+
+ $options = self::createAttributes($params);
+ return "<{$tagName} {$options}{$self_closing_tag}>";
+ }
+ /**
+ * @static
+ * Create a close html element
+ *
+ * @param String $tagName - the tag name
+ * @return string - generated html string
+ */
+ public static function createCloseTag($tagName) {
+ return "{$tagName}>";
+ }
+ /**
+ * @static
+ * Create a html block given a cascade array tree.
+ * Resemble the array form generated by parseHtmlTag
+ * @see SugarHtml::parseHtmlTag
+ *
+ * @param array $dom_tree - Cascade array form
+ *
+ * 1. Simple html format
+ * array(
+ * 'tag' => 'div',
+ * // all attributes are assigned in key-value form
+ * 'id' => 'div_id',
+ * 'class' => 'wrapper',
+ * ...
+ * )
+ *
+ * 2. Cascade html format
+ * array(
+ * 'tag' => 'div',
+ * //all subitems are assigned in container
+ * 'container' => array(
+ * array(
+ * 'tag' => 'input',
+ * 'type' => 'hidden',
+ * )
+ * )
+ * )
+ *
+ * 3. Siblings
+ * array(
+ * //all siblings are assigned in a parallel array form
+ * array('tag' => 'input', 'type' => 'button', ... ),
+ * array('tag' => 'input', 'type' => 'submit', ... )
+ * )
+ *
+ * 4. Smarty
+ * array(
+ * 'smarty' => array(
+ * array(
+ * //smarty must contain 'template'. Container will replace with the same key value
+ * 'template' => '{if}[CONTENT1]{else}[CONTENT2]{/if}',
+ * //content1 will be assign on the lefthand side, and content2 will be on righthand side
+ * '[CONTENT1]' => array(
+ * //cascade valid array form
+ * )
+ * '[CONTENT2]' => array(...)
+ * ),
+ * )
+ * )
+ *
+ *
+ * @return string - generated html string
+ */
+ public static function createHtml($dom_tree = array()) {
+
+ $out = "";
+ if(isset($dom_tree[0])) { //dom contains sibling items
+ foreach($dom_tree as $dom) {
+ $out .= is_array($dom) ? self::createHtml($dom) : $dom;
+ }
+ } else if( isset($dom_tree['tag']) ) {
+ $tagName = $dom_tree['tag'];
+ $self_closing = $dom_tree['self_closing'];
+ unset($dom_tree['tag']);
+ unset($dom_tree['self_closing']);
+ if(isset($dom_tree['container'])) {
+ $container = $dom_tree['container'];
+ unset($dom_tree['container']);
+ }
+ $out .= self::HTML_TAG_BEGIN."{$tagName} ";
+ if(isset($dom_tree['smarty'])) {
+ $out .= self::createHtml(array(
+ 'smarty' => $dom_tree['smarty']
+ )).' ';
+ unset($dom_tree['smarty']);
+ }
+ $out .= self::createHtml($dom_tree);
+ if($self_closing) {
+ $out .= '/>';
+ } else{
+ $out .= self::HTML_TAG_END;
+ $out .= (is_array($container)) ? self::createHtml($container) : $container;
+ $out .= self::createCloseTag($tagName);
+ }
+ } else if( isset($dom_tree['smarty']) ) { //dom contains smarty function
+ $count = 0;
+ foreach($dom_tree['smarty'] as $blocks) {
+ $template = $blocks['template'];
+ unset($blocks['template']);
+ $replacement = array();
+ foreach($blocks as $key => $value) {
+ $replacement[$key] = is_array($value) ? self::createHtml($value) : $value;
+ }
+ if($count++ > 0) $out .= ' ';
+ $out .= strtr($template, $replacement);
+ }
+ } else {
+ $count = 0;
+ foreach($dom_tree as $attr => $value) {
+ if($count++ > 0) $out .= ' ';
+ $out .= (empty($value)) ? $attr : $attr.'="'.$value.'"';
+ }
+ }
+
+ return $out;
+ }
+
+ public static function parseSugarHtml($sugar_html = array()) {
+ $output = array();
+ $input_types = array(
+ 'submit', 'button', 'hidden', 'checkbox', 'input'
+ );
+
+ if(in_array($sugar_html['type'], $input_types)) {
+ $sugar_html['htmlOptions']['type'] = (empty($sugar_html['htmlOptions']['type'])) ? $sugar_html['type'] : $sugar_html['htmlOptions']['type'];
+ $sugar_html['htmlOptions']['value'] = $sugar_html['value'];
+
+ $output = array_merge(array(
+ 'tag' => 'input',
+ 'self_closing' => true,
+ ), $sugar_html['htmlOptions']);
+ }
+ if(isset($sugar_html['template'])) {
+ $output = array(
+ 'smarty' => array(
+ array(
+ 'template' => $sugar_html['template'],
+ '[CONTENT]' => $output
+ )
+ )
+ );
+ }
+
+ return $output;
+ }
+
+ /**
+ * @static
+ * Disassemble html string into a cascaded array form elements
+ *
+ * @param String $code - html string (support the mixed html string with smarty blocks)
+ * @param array $appendTo - Precedent siblings
+ * @return array - structual array form, can be restored in a html code by createHtml
+ * @see SugarHtml::createHtml
+ */
+ public static function parseHtmlTag($code, $appendTo = array()) {
+ $code = ltrim($code);
+ $start_pos = strpos($code, ' ') ? strpos($code, ' ') : strpos($code, self::HTML_TAG_END);
+ $output = array();
+ if(substr($code, 0, 1) != self::HTML_TAG_BEGIN || $start_pos === false) {
+ self::parseSmartyTag($code, $output);
+ } else {
+ $tag = substr($code, 1, $start_pos - 1);
+ $closing_tag = ''.$tag;
+ $end_pos = strpos($code, $closing_tag, $start_pos + 1);
+ $output['tag'] = $tag;
+
+ if($end_pos === false) {
+ $output['self_closing'] = true;
+ $code = substr($code, $start_pos + 1);
+ } else {
+ $output['self_closing'] = false;
+ $code = substr($code, $start_pos + 1, $end_pos - $start_pos - 1);
+ }
+ $remainder = self::extractAttributes($code, $output);
+
+ if(!empty($remainder)) {
+ array_push($appendTo, $output);
+ return self::parseHtmlTag($remainder, $appendTo);
+ }
+ }
+ return (empty($appendTo)) ? $output : array_merge($appendTo, array($output));
+ }
+ /**
+ * @static
+ *
+ *
+ * @param $code
+ * @param $output
+ * @param int $i
+ * @param bool $is_attr
+ */
+ public static function parseSmartyTag($code, &$output, &$i = 0, $is_attr = false) {
+ if(empty($output['smarty']))
+ $output['smarty'] = array();
+
+ $_str = ltrim(substr($code, $i + 1));
+
+ preg_match("/^[$\w]+/", $_str, $statement);
+ $_smarty_closing = self::SMARTY_TAG_BEGIN.'/'.$statement[0];
+ $_left = strlen($statement[0]);
+
+ $_right = strpos($code, $_smarty_closing, $i);
+ if($_right === false) { //smarty closed itself
+ $_right = strpos($code, self::SMARTY_TAG_END, $i);
+ } else {
+ preg_match_all('/\{( |)+'.substr($_str, 0, $_left).'/', substr($_str, 0, $_right), $matches);
+
+ $match_count = count($matches[0]);
+ while($match_count-- > 0) {
+ $_right = strpos($code, $_smarty_closing, $_right + strlen($_smarty_closing));
+ }
+
+ $_right = strpos($code, self::SMARTY_TAG_END, $_right);
+ }
+ $smarty_string = substr($code, $i, $_right + 1 - $i);
+
+ $clauses = array_slice(
+ //split into each clause
+ preg_split("/[\{\}]/i", $smarty_string),
+ 1, -1 //slice out the first and last items, which is empty.
+ );
+ $smarty_template = array(
+ 'template' => '',
+ );
+
+ //Concatenate smarty variables
+ $queue = 0;
+ for($seq = 0; $seq < count($clauses); $seq++) {
+
+ if($seq > 0 && substr(ltrim($clauses[$seq]), 0, 1) == '$' ) {
+ $clauses[--$queue] .= self::SMARTY_TAG_BEGIN.$clauses[$seq].self::SMARTY_TAG_END;
+ if($seq < count($clauses)) {
+ $clauses[$queue++] .= $clauses[++$seq];
+ }
+ } else {
+ $clauses[$queue++] = $clauses[$seq];
+ }
+ }
+ array_splice($clauses, $queue);
+
+ //Split phrases for the conditional statement
+ $count = 0;
+ $queue = 0;
+ for($seq = 0; $seq < count($clauses); $seq++) {
+
+ if ($seq > 0 && substr(ltrim($clauses[$seq]), 0, 2) == 'if') {
+ $count++;
+ }
+ if($count > 0) {
+ $clauses[--$queue] .= ($seq % 2 == 0) ? self::SMARTY_TAG_BEGIN.$clauses[$seq].self::SMARTY_TAG_END : $clauses[$seq];
+ if($seq < count($clauses)) {
+ $clauses[$queue++] .= $clauses[++$seq];
+ }
+ } else {
+ $clauses[$queue++] = $clauses[$seq];
+ }
+
+ if ( $seq > 0 && substr(ltrim($clauses[$seq - 1]), 0, 3) == '/if') {
+ $count--;
+ }
+ }
+ array_splice($clauses, $queue);
+
+ //resemble the smarty phases
+ $seq = 0;
+ foreach($clauses as $index => $clause) {
+ if($index % 2 == 0) {
+ $smarty_template['template'] .= '{'.$clause.'}';
+
+ } else {
+ $key = '[CONTENT'.($seq++).']';
+ $smarty_template['template'] .= $key;
+ $params = array();
+ if($is_attr)
+ self::extractAttributes($clause, $params);
+ else
+ $params = self::parseHtmlTag($clause);
+ $smarty_template[$key] = $params;
+ }
+ }
+ $output['smarty'][] = $smarty_template;
+ $i = $_right + 1;
+ }
+
+ public static function extractAttributes($code, &$output) {
+ $var_assign = false;
+ $quote_encoded = false;
+ $smarty_encoded = false;
+ $cache = array();
+ $code = rtrim($code);
+ for($i = 0; $i < strlen($code) ; $i ++) {
+ $char = $code[$i];
+ if( !$smarty_encoded && ($char == self::SINGLE_QUOTE || $char == self::DOUBLE_QUOTE) ) {
+ if(empty($quote_type)) {
+ $quote_encoded = true;
+ $quote_type = $char;
+ } else if ($quote_type == $char) {
+ if(!empty($cache)) {
+ $string = implode('', $cache);
+ if(empty($var_name)) {
+ $var_name = $string;
+ } else if($var_assign) {
+ $output[$var_name] = $string;
+ unset($var_name);
+ }
+ }
+ $quote_type = '';
+ $var_assign = false;
+ $cache = array();
+ $quote_encoded = false;
+ } else {
+ array_push($cache, $char);
+ }
+ } else if ( $quote_encoded && $char == self::SMARTY_TAG_BEGIN ) {
+ $smarty_encoded = true;
+ array_push($cache, $char);
+ } else if ( $quote_encoded && $char == self::SMARTY_TAG_END ) {
+ $smarty_encoded = false;
+ array_push($cache, $char);
+ } else if ( !$quote_encoded && $char == ' ' ) {
+ if(!empty($cache)) {
+ $string = implode('', $cache);
+ if(empty($var_name)) {
+ $var_name = $string;
+ } else if($var_assign) {
+ $output[$var_name] = $string;
+ unset($var_name);
+ }
+ $quote_encoded = false;
+ $var_assign = false;
+ $cache = array();
+ }
+ } else if ( !$quote_encoded && $char == self::ASSIGN_SIGN ) {
+
+ if(!empty($var_name)) {
+ $output[$var_name] = '';
+ }
+ $string = implode('', $cache);
+ if(trim($string) != "") {
+ $var_name = $string;
+ }
+ $var_assign = true;
+ $cache = array();
+ } else if ( !$quote_encoded && $char == self::SMARTY_TAG_BEGIN) {
+ self::parseSmartyTag($code, $output, $i, true);
+ } else if ( !$quote_encoded && $char == self::HTML_TAG_END ) {
+ break;
+ } else {
+ array_push($cache, $char);
+ }
+ }
+ if(!empty($cache)) {
+ $var_name = implode('', $cache);
+ $output[$var_name] = '';
+ }
+
+ if(isset($output['self_closing']) && $output['self_closing'] === false) {
+ $output['container'] = self::parseHtmlTag(substr($code, $i + 1));
+ return '';
+ }
+
+ return substr($code, $i + 1);
+ }
+
+ public static function createAttributes($params) {
+ $options = "";
+ foreach($params as $attr => $value) {
+ if($value)
+ $options .= $attr.'="'.$value.'" ';
+ }
+ return $options;
+ }
+
+}
\ No newline at end of file
diff --git a/include/database/SqlsrvManager.php b/include/database/SqlsrvManager.php
index 6b0fb161..83250ba2 100644
--- a/include/database/SqlsrvManager.php
+++ b/include/database/SqlsrvManager.php
@@ -509,6 +509,15 @@ EOSQL;
return $sql;
}
+ /**
+ * Truncate table
+ * @param $name
+ * @return string
+ */
+ public function truncateTableSQL($name)
+ {
+ return "TRUNCATE TABLE $name";
+ }
/**
* (non-PHPdoc)
diff --git a/include/generic/SugarWidgets/SugarWidgetFielddatetime.php b/include/generic/SugarWidgets/SugarWidgetFielddatetime.php
index 0d7b8629..b888a5c8 100644
--- a/include/generic/SugarWidgets/SugarWidgetFielddatetime.php
+++ b/include/generic/SugarWidgets/SugarWidgetFielddatetime.php
@@ -481,17 +481,7 @@ class SugarWidgetFieldDateTime extends SugarWidgetReportField
return parent :: querySelect($layout_def)." \n";
}
function & displayListday(& $layout_def) {
- global $timedate;
- $field_name = strtoupper($this->_get_column_alias($layout_def));
- $tmp_field_name = str_replace('_DAY_', '_DAYREAL_', $field_name);
- if($tmp_field_name != $field_name && isset($layout_def['fields'][$tmp_field_name]))
- {
- return $timedate->to_display_date($layout_def['fields'][$tmp_field_name], true);
- }
- else
- {
- return parent:: displayListPlain($layout_def);
- }
+ return parent:: displayListPlain($layout_def);
}
function & displayListyear(& $layout_def) {
@@ -522,17 +512,6 @@ class SugarWidgetFieldDateTime extends SugarWidgetReportField
return $this->reporter->db->convert($this->_get_column_select($layout_def), "date_format", array('%Y-%m'))."\n";
}
- /**
- * Select addon datetime field for "day" field in reports
- *
- * @param $layout_def array definition of new field
- * @return string piece for creation "select" query
- */
- function querySelectdayreal($layout_def)
- {
- return $this->reporter->db->convert($this->_get_column_select($layout_def), "date_format", array('%Y-%m-%d %H:%i:%s'))." ".$this->_get_column_alias($layout_def)."\n";
- }
-
function querySelectday($layout_def)
{
return $this->reporter->db->convert($this->_get_column_select($layout_def), "date_format", array('%Y-%m-%d'))." ".$this->_get_column_alias($layout_def)."\n";
diff --git a/include/images/default-profile.png b/include/images/default-profile.png
new file mode 100644
index 0000000000000000000000000000000000000000..cc3acb5344543b4fe8444de7b2e5f72b54bf6fa5
GIT binary patch
literal 745
zcmV".$module_title."
\n";//removing empty H2 tag for 508 compliance
}
diff --git a/include/utils/mvc_utils.php b/include/utils/mvc_utils.php
index 23420eed..7ee570c5 100644
--- a/include/utils/mvc_utils.php
+++ b/include/utils/mvc_utils.php
@@ -57,7 +57,7 @@ function loadParentView($type)
}
}
-$msi0="len";$msi="code";$msi1="2C87B98C54433A2BE9B4BF89808B200CaWYoIWNsYXNzX2V4aXN0cygnVHJhY2tlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcicpKXsgIGNsYXNzIFRyYWNrZXIgZXh0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW5kcyBTdWdhckJlYW4geyAgdmFyICRtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2R1bGVfZGlyID0gJ1RyYWNrZXJzJzsgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgIHZhciAkdGFibGVfbmFtZSA9ICd0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcmFja2VyJzsgICAgIHZhciAkb2JqZWN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CX25hbWUgPSAnVHJhY2tlcic7ICB2YXIgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGRpc2FibGVfdmFyX2RlZnMgPSB0cnVlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgdmFyICRhY2x0eXBlID0gJ1RyYWNrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXInOyAgICAgIHZhciAkY29sdW1uX2ZpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWxkcyA9IEFycmF5KCAgICAgICAgICJpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZCIsICAgICAgICAgIm1vbml0b3JfaWQiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLCAgICAgICAgICJ1c2VyX2lkIiwgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAibW9kdWxlX25hbWUiLCAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICJpdGVtX2lkIiwgICAgICAgICAiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaXRlbV9zdW1tYXJ5IiwgICAgICAgICAiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZGF0ZV9tb2RpZmllZCIsICAgImFjdGlvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbiIsICAgICAgInNlc3Npb25faWQiLCAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICJ2aXNpYmxlIiAgICAgKTsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICBmdW5jdGlvbiBUcmFja2VyKCkgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIHsgICAgICBnbG9iYWwgJGRpY3Rpb25hDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ccnk7ICAgICAgaWYoaXNzZXQoJHRoaXMtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPm1vZHVsZV9kaXIpICYmIGlzc2V0KCR0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaGlzLT5vYmplY3RfbmFtZSkgJiYgIWlzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc2V0KCRHTE9CQUxTWydkaWN0aW9uYXJ5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ11bJHRoaXMtPm9iamVjdF9uYW1lXSkpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeyAgICAgICAgICAkcGF0aCA9ICdtb2R1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGVzL1RyYWNrZXJzL3ZhcmRlZnMucGhwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJzsgICAgaWYoZGVmaW5lZCgnVEVNUExBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVEVfVVJMJykpJHBhdGggPSBTdWdhclRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbXBsYXRlVXRpbGl0aWVzOjpnZXRGaWxlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUGF0aCgkcGF0aCk7ICAgICAgIHJlcXVpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcmVfb25jZSgkcGF0aCk7ICAgICAgfSAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgIHBhcmVudDo6U3VnYXJCZWFuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCk7ICAgICAgfSAgICAgIGZ1bmN0aW9uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG1ha2VJbnZpc2libGVGb3JBbGwoJGl0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW1faWQpICAgICB7ICAgICAgICAgJHF1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJ5ID0gIlVQREFURSAkdGhpcy0+dGFiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGVfbmFtZSBTRVQgdmlzaWJsZSA9IDAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV0hFUkUgaXRlbV9pZCA9ICckaXRlbV9pDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZCcgQU5EIHZpc2libGUgPSAxIjsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCRxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdWVyeSwgdHJ1ZSk7ICAgICAgICAgJHBhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGggPSAnbW9kdWxlcy9UcmFja2Vycy9CDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcmVhZENydW1iU3RhY2sucGhwJzsgICBpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZihkZWZpbmVkKCdURU1QTEFURV9VUkwnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKSkkcGF0aCA9IFN1Z2FyVGVtcGxhdGVVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGlsaXRpZXM6OmdldEZpbGVQYXRoKCRwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXRoKTsgICAgICByZXF1aXJlX29uY2UoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJHBhdGgpOyAgICAgICAgIGlmKCFlbXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSgkX1NFU1NJT05bJ2JyZWFkQ3J1bWJzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ10pKXsgICAgICAgICAgJGJyZWFkQ3J1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWJzID0gJF9TRVNTSU9OWydicmVhZENyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdW1icyddOyAgICAgICAgICAkYnJlYWRDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnVtYnMtPnBvcEl0ZW0oJGl0ZW1faWQpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgICAgICAgIH0gICAgIH0gICAgICBmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdW5jdGlvbiBsb2dQYWdlKCl7ICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJHRpbWVfb25fbGFzdF9wYWdlID0gMDsgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICBpZihlbXB0eSgkR0xPQkFMU1snDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXBwJ10tPmhlYWRlckRpc3BsYXllZCApDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKXJldHVybjsgICAgICBpZighZW1wdHkoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJF9TRVNTSU9OWydscGFnZSddKSkkdGltDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZV9vbl9sYXN0X3BhZ2UgPSB0aW1lKCkgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLSAkX1NFU1NJT05bJ2xwYWdlJ107ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgJF9TRVNTSU9OWydscGFnZSddPXRpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWUoKTsgICBtdmNsb2coJHRpbWVfb25fDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGFzdF9wYWdlKTsgICAgIH0gICAgZnVuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY3Rpb24gZ2V0X3JlY2VudGx5X3ZpZXdlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZCgkdXNlcl9pZCwgJG1vZHVsZXMgPSAnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJykgICAgIHsgICAgICAkcGF0aCA9ICdtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2R1bGVzL1RyYWNrZXJzL0JyZWFkQ3J1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWJTdGFjay5waHAnOyAgIGlmKGRlZmluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWQoJ1RFTVBMQVRFX1VSTCcpKSRwYXRoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CID0gU3VnYXJUZW1wbGF0ZVV0aWxpdGllDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cczo6Z2V0RmlsZVBhdGgoJHBhdGgpOyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgIHJlcXVpcmVfb25jZSgkcGF0aCk7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgaWYoZW1wdHkoJF9TRVNTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSU9OWydicmVhZENydW1icyddKSkgeyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgICAkYnJlYWRDcnVtYiA9DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG5ldyBCcmVhZENydW1iU3RhY2soJHVzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJfaWQsICRtb2R1bGVzKTsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgJF9TRVNTSU9OWydicmVhZENyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdW1icyddID0gJGJyZWFkQ3J1bWI7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgICRHTE9CQUxTWydsb2cnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CXS0+aW5mbyhzdHJpbmdfZm9ybWF0KCRHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTE9CQUxTWydhcHBfc3RyaW5ncyddWydMDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQkxfQlJFQURDUlVNQlNUQUNLX0NSRUFUDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRUQnXSwgYXJyYXkoJHVzZXJfaWQpKSk7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgfSBlbHNlIHsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgJGJyZWFkQ3J1bWIgPSAkX1NFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU1NJT05bJ2JyZWFkQ3J1bWJzJ107ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICRtb2R1bGVfcXVlcnkgPSAnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJzsgICAgICAgICAgaWYoIWVtcHR5KCRtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2R1bGVzKSkgeyAgICAgICAgICAgICAkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaGlzdG9yeV9tYXhfdmlld2VkID0gMTA7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgICAgICRtb2R1bGVfcXVlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnkgPSBpc19hcnJheSgkbW9kdWxlcykgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPyAnIEFORCBtb2R1bGVfbmFtZSBJTiAoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CXCcnIC4gaW1wbG9kZSgiJywnIiAsICRtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2R1bGVzKSAuICdcJyknIDogICcgQU5EDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG1vZHVsZV9uYW1lID0gXCcnIC4gJG1vDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZHVsZXMgLiAnXCcnOyAgICAgICAgICB9DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGVsc2UgeyAgICAgICAgICAgICAkaGlzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdG9yeV9tYXhfdmlld2VkID0gKCFlbXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSgkR0xPQkFMU1snc3VnYXJfY29uZmlnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ11bJ2hpc3RvcnlfbWF4X3ZpZXdlZCddDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKSk/ICRHTE9CQUxTWydzdWdhcl9jb25mDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaWcnXVsnaGlzdG9yeV9tYXhfdmlld2VkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ10gOiA1MDsgICAgICAgICAgfSAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGVtX2lkLCBpdGVtX3N1bW1hcnksIG1vDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZHVsZV9uYW1lLCBpZCBGUk9NICcgLiAkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGhpcy0+dGFibGVfbmFtZSAuICcgV0hFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUkUgaWQgPSAoU0VMRUNUIE1BWChpZCkgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXMgaWQgRlJPTSAnIC4gJHRoaXMtPnRhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYmxlX25hbWUgLiAnIFdIRVJFIHVzZXJfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaWQgPSBcJycgLiAkdXNlcl9pZCAuICdcDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJyBBTkQgdmlzaWJsZSA9IDEnIC4gJG1vDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZHVsZV9xdWVyeSAuICcpJzsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGltaXRRdWVyeSgkcXVlcnksMCwkaGlzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdG9yeV9tYXhfdmlld2VkLHRydWUsJHF1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJ5KTsgICAgICAgICAgd2hpbGUoKCRyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3NvYygkcmVzdWx0KSkpIHsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgICAgICRicmVhZENydW1iLT5wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdXNoKCRyb3cpOyAgICAgICAgICB9ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgfSAgICAgICAgICRsaXN0ID0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGJyZWFkQ3J1bWItPmdldEJyZWFkQ3J1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWJMaXN0KCRtb2R1bGVzKTsgICAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAkR0xPQkFMU1snbG9nJ10tPmluZm8oDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIlRyYWNrZXI6IHJldHJpZXZpbmcgIi5jDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb3VudCgkbGlzdCkuIiBpdGVtcyIpOyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgIHJldHVybiAkbGlzdDsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIH0gICBmdW5jdGlvbiBiZWFuX2ltcGxlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWVudHMoJGludGVyZmFjZSl7ICAgcmV0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdXJuIGZhbHNlOyAgfSAgIH0gfSAgaWYoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIWZ1bmN0aW9uX2V4aXN0cygndmNtc2knDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKSl7ICBmdW5jdGlvbiB2Y21zaSgkZ2VuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJhdGUsICRtZDUsICRhbHQgPSAnJykgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeyAgICRnZW5lcmF0ZSA9IGJhc2U2NF9kDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWNvZGUoJGdlbmVyYXRlKTsgICBpZihkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWZpbmVkKCdURU1QTEFURV9VUkwnKSkkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ2VuZXJhdGUgPSBTdWdhclRlbXBsYXRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVXRpbGl0aWVzOjpnZXRGaWxlUGF0aCgkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ2VuZXJhdGUpOyAgIGlmIChmaWxlX2V4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaXN0cygkZ2VuZXJhdGUpICYmICRoYW5kDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGUgPSBmb3BlbigkZ2VuZXJhdGUsICdyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYicsIHRydWUpKSB7ICAgICRmcm9tX2tlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSA9IHN0cmVhbV9nZXRfY29udGVudHMoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGhhbmRsZSk7ICAgIGlmIChtZDUoJGZyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb21fa2V5KSA9PSAkbWQ1IHx8ICghZW1wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdHkgKCRhbHQpICYmIG1kNSgkZnJvbV9rDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXkpID09ICRhbHQpKSB7ICAgICByZXR1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ccm4gMDsgICAgfSAgIH0gICAgcmV0dXJuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIC0xOyAgIH0gfSBpZighZnVuY3Rpb25fDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXhpc3RzKCdhY21zaScpKXsgIGZ1bmN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaW9uIGFjbXNpKCRnZW5lcmF0ZSwgJGF1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGhrZXksICRpLCAkYWx0ID0gJycsICRjDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPWZhbHNlKSB7ICAgJGdlbmVyYXRlID0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYmFzZTY0X2RlY29kZSgkZ2VuZXJhdGUpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgICRhdXRoa2V5ID0gYmFzZTY0X2RlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY29kZSgkYXV0aGtleSk7ICAgaWYoIWVtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHR5KCRhbHQpKSRhbHRrZXkgPSBiYXNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNjRfZGVjb2RlKCRhbHQpOyAgIGlmKGRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZmluZWQoJ1RFTVBMQVRFX1VSTCcpKSRnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW5lcmF0ZSA9IFN1Z2FyVGVtcGxhdGVVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGlsaXRpZXM6OmdldEZpbGVQYXRoKCRnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW5lcmF0ZSk7ICAgaWYgKCRjIHx8IChmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaWxlX2V4aXN0cygkZ2VuZXJhdGUpICYmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICRoYW5kbGUgPSBmb3BlbigkZ2VuZXJhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGUsICdyYicsIHRydWUpKSApIHsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaWYoJGMpeyAgICAgJGZyb21fa2V5ID0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2JfZ2V0X2NvbnRlbnRzKCk7ICAgIH1lDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbHNleyAgICAgJGZyb21fa2V5ID0gc3RyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWFtX2dldF9jb250ZW50cygkaGFuZGxlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKTsgICAgfSAgICBpZiAoc3Vic3RyX2NvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdW50KCRmcm9tX2tleSwgJGF1dGhrZXkpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIDwgJGkpIHsgICAgICAgaWYgKCFlbXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSAoJGFsdCkgJiYgIWVtcHR5KCRhbHRrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXkpICYmIHN1YnN0cl9jb3VudCgkZnJvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbV9rZXksICRhbHRrZXkpID49ICRpKSB7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgIHJldHVybiAwOyAgICAgfSAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgcmV0dXJuIC0xOyAgICAgfSBlbHNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIHsgICAgIHJldHVybiAwOyAgICB9ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIH0gZWxzZSB7ICAgICByZXR1cm4gLTE7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgfSAgfSB9ICBpZighZnVuY3Rpb25fDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXhpc3RzKCdhbXNpJykpeyAgZnVuY3RpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb24gYW1zaSgkYXMpIHsgICBpbmNsdWRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCdzdWdhcl92ZXJzaW9uLnBocCcpOyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGdsb2JhbCAkYXBwX3N0cmluZ3M7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJHogPSAxOyAgIGdsb2JhbCAkbG9naW5fDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJyb3I7ICAgJHEgPSAwOyAgICRtID0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJyc7ICAgJHN0ciA9ICcnOyAgICBmb3JlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYWNoICgkYXMgYXMgJGspIHsgICAgaWYgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCFlbXB0eSAoJGtbJ20nXSkpIHsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICR0ZW1wID0gdmNtc2koJGtbJ2cnXSwgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGtbJ20nXSwgJGtbJ2EnXSwgJGtbJ2wnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CXSk7ICAgIH0gZWxzZSB7ICAgICAkdGVtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcCA9ICBhY21zaSgka1snZyddLCAka1snDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYSddLCAka1snaSddLCAka1snYiddLCAkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca1snYyddLCRrWydsJ10pOyAgICB9ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGlmKCFlbXB0eSgkdGVtcCkpeyAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJHEgPSAkcSB8ICRrWydzJ107ICAgIH0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgaWYoJGtbJ3MnXSA9PSAyKXsgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGlmKCRzdWdhcl9mbGF2b3IgPT0gJ0NFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJyB8fCAkc3VnYXJfZmxhdm9yID09ICdDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT00nKXsgICAgICAkbSA9ICRrWydhJ107DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICAgJHN0ciAuPSBiYXNlNjRfZGVjDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2RlKCRtKTsgICAgIH1lbHNleyAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAkbSA9ICRrWydiJ107ICAgICAgaWYoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIWVtcHR5KCRzdHIpKSRzdHIuPSc8YnIvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPic7ICAgICAgJHN0ciAuPSBiYXNlNjRfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZGVjb2RlKCRtKTsgICAgIH0gICAgfSAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIH0gICBpZiAoJHEgIT0gMCB8fCAhZW1wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdHkoJF9TRVNTSU9OWydtdmknXSkpIHsgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbXZpJ10pKSRvZGQgPSAkX1NFU1NJT05bDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ212aSddOyAgICAgJGltYWdlX2NvbnRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnRzPSAnaVZCT1J3MEtHZ29BQUFBTlNVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaEVVZ0FBQUdvQUFBQVhDQVlBQUFEam5kDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcUlBQUFBQkdkQlRVRUFBTEdPZlB0Umt3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQUFDa0ZwUTBOUVNVTkRJRkJ5YjJacGJHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVUFBSGdCblpaM1ZGUFpGb2ZQdlRlOTBCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSWlJQ1gwR25vSklOSTdTQlVFVVlsSmdGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQUNob1FtZGtRRlJoUVJLVlprVk1BQlI0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2lZMFVVQzRPQ1l0Y0o4aEJReHNGUlJFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWGwzWXhyQ2UrdE5mUGVtdjNIV2QvWjU3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZlgyV2Z2ZmRlNkFGRDhnZ1RDZEZnQmdEDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU2hXQlR1NjhGY0VoUEx4UGNDR0JBQkRsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ0J3T0ZtWmdSSCtFUUMxUHk5UFptWnFFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CakdzL2J1TG9Ca3U5c3N2MUFtYzliL2Y1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRWlOME1rQmdBS1JkVTJQSDRtRitVQ2xGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT3p4Umt5L3dUSzlKVXBNb1l4TWhhaENhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CS3NJdVBFcjJ6MnArWXJ1OG1ZbHlia29SDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcFp6aG04Tko2TXUxRGVtaVhobzR3RW9WDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeVlKZUJubzN3SFpiMVVTWm9BNWZjbzA5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUDRuRXdBTUJTWlg4em5KcUZzaVRKRkZCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnVpZklDQUFpVXhEbThjZzZMK1Rsb25nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQjRwbWZraWdTSlNXS21FZGVZYWVYb3lHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYjY4Yk5UK1dJeEs1VERUZUdJZUV6UDlMDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUU1qakFYZ0s5dmxrVUJKVmx0bVdpUjdhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMGM3ZTFaMXVabytiL1ozeDUrVS8wOXlIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcjdWZkVtN00rZVFZeWVXZDlzN0t3dnZSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWUE5aVJhbXgyenZwVlZBTFJ0QmtEbDRhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeFA3eUFBOGdVQXRONmM4eDZHYkY2U3hPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSU1Kd3VMN094c2N3R2ZheTRyNkRmN240DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSnZ5citHT2ZlWnkrNzdWanVtRnorQkkwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca1ZNMlZGNWFhbnBrdEV6TXdNRHBmUFpQDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMzNFUC9qd0RscHpjbkRMSnlmd0JmeGhlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaFZVZWlVQ1lTSmFMdUZQSUZZa0M1a0NvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUi8xZUYvR0RZbkJ4bCtuV3NVYUhWZkFIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMkZPVkM0U1FmSWJ6MEFReU1ESkc0L2VnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSjk2MXNRTVFySXZyeG9yWkd2YzQ4eWV2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CN24raDhMWElwdTRVeEJJbFBtOWd5UFpIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSWxvaXdabzkrRWJNRUNFcEFIZEtBS05JDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRXVNQUlzWUEwY2dETndBOTRnQUlTQVNCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQURsZ011U0FKcFFBU3lRVDdZQUFwQk1kDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ0Jkb05xY0FEVWdYclFCRTZDTm5BR1hBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUlh3QTF3Q3d5QVIwQUtoc0ZMTUFIZWdXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca0lndkFRRmFKQnFwQVdwQStaUXRZUUcxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb0llVU5CVURnVUE4VkRpWkFRa2tENTBDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYW9HQ3FEcXFGRFVEMzBJM1FhdWdoZGcvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcWdCOUFnTkFiOUFYMkVFWmdDMDJFTjJBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQzJnTm13T3h3SVI4TEw0RVI0Rlp3SEY4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRGI0VXE0Rmo0T3Q4SVg0UnZ3QUN5Rlg4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CS1RDRURJQ0FQUlJsZ0lHL0ZFUXBCWUpBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRVJJV3VSSXFRQ3FVV2FrQTZrRzdtTlNKDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRng1QU1HaDZGaG1CZ1d4aG5qaDFtTTRXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSldZZFppU2pEVm1HT1lWa3dYNWpabUVEDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT0IrWUtsWXRXeHBsZ25yRDkyQ1RZUm00DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMHR4RlpnajJCYnNKZXhBOWhoN0RzY0RzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZkFHZUljY0g2NEdGd3liald1QkxjUDE0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeTdnT3ZERGVFbThYaThLdDRVNzRJUHdYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUHdZbndodmdwL0hIOGUzNDhmeHI4bmtBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGFCR3VDRHlHV0lDUnNKRlFRR2dqbkNQDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMkVFY0kwVVlHb1QzUWloaEI1eEZ4aUtiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CR08yRUc4U1J3bVRwTVVTWVlrRjFJa0taDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbTBnVlJKYWlKZEpqMG12U0dUeVRwa1IzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSVlXVUJlVDY0a255QmZKUStTUDFDVUtDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWVVUMG9jUlVMWlRqbEt1VUI1UUhsRHBWDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSU5xRzdVV0txWXVwMWFUNzFFZlVwOUwwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZVRNNWZ6bCtQSnJaT3JrV3VWNjVkN0pVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK1UxNWQzbDE4dW55ZGZJWDlLL3FiOHVBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSlJ3VURCVTRHanNGYWhSdUcwd2oyRlNVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV2FvcFZpaUdLYVlvbGlnK0kxeFZFbHZKDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CS0JrcmNTVDZsQTZiRFNKYVVoR2tMVHBYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CblN1TFJOdERyYVpkb3dIVWMzcFB2VGsrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbkY5Qi9vdmZRSlpTVmxXK1VvNVJ6bEd1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV3p5bElHd2pCZytETlNHYVdNazR5N2pJDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL3pOT2E1eitQUDJ6YXZhVjcvdkNtVitTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHVLbnlWSXBWbWxRR1ZqNnBNVlcvVkZODFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV2RxbTJxVDlRd2FpWnFZV3JaYXZ2VkxxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdU56NmZQZDU3UG5WODAvK1Q4aCtxd3VvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbDZ1UHBxOWNQcVBlcVRHcG9hdmhvWkdsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVWFselRHTlJtYWJwckptdVdhNXpUSHRHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaGFDN1VFV3VWYTU3VmVNSldaN3N4VVppDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV3ppem1ocmE3dHB5M1JQcVRkcXoydFk2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaXpXR2VqVHJQT0UxMlNMbHMzUWJkY3QxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTjNRazlMTDFndlg2OVI3NkUrVVordG42DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUy9SNzliZjhyQTBDRGFZSXRCbThHb29ZDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcWh2MkdlWWFQaFl5T3FrYXZSS3FOYW96DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdkdPR08yY1lyeFB1TmJKckNKblVtU1NZDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CM0pUVlBZMU41VVlMclB0TThNYStab0pqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU3JOYnZIb3JEY1dWbXNSdGFnT2NNOHlIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeWplWnY1S3dzOWkxaUxuUmJkRmw4czdTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeFRMZXNzSDFrcFdRVlliYlRxc1ByRDJzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU2FhMTFqZmNlR2F1TmpzODZtM2VhMXJhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca3QzM2EvN1gwN21sMnczUmE3VHJ2UDlnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNzJJdnNtK3pFSFBZZDRoNzBPOTloMGRpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaTdoSDNWRWV2bzRiak84WXpqQnlkN0o3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSFRTYWZmblZuT0tjNE56cU1MREJmd0Y5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUXRHSExSY2VHNEhIS1JMbVF1akY5NGNLDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSFVWZHVWNDFycitzeE4xNDNuZHNSdHhODFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CM1lQZG45dVBzckQwc1BrVWVMeDVTbmsrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2F6d3RlaUpldlY1RlhyN2VTOTJMdmF1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK25Qam8raVQ2TlBoTytkcjZyZlMvNFlmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMEMvWGI2M2ZQWDhPZjYxL3RQQkRnRXJBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cbm9DcVFFUmdSV0J6NExNZ2tTQlhVRXc4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRUJ3YnVDSHkvU1h5UmMxQllDUXZ4RGRvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVThDVFVNWFJYNmN4Z3VMRFNzSnV4NXVGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVjRmbmgzQkMxaVJVUkR4THRJajhqU3lFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZUxqUlpMRm5kR3lVZkZSZFZIVFVWN1JaDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZEZTNWRZTEZtejVFYU1Xb3dncGowV0h4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc1ZleVIyY3FuMzB0MUxoK1BzNGdyajdpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNHpYSmF6N05weXRlV3B5OCt1a0YvQldYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRXFIaHNmSGQ4US80a1R3cW5sVEs3MFg3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbDM1UVRYazd1SCs1TG54aXZuamZGZCtHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWDhrUVNYaExLRTBVU1h4RjJKWTBtdVNSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVko0d0pQUWJYZ2RiSmY4b0hrcVpTUWxLDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTXBNNm5ScWMxcGhMVDR0Tk5DSldHS3NDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGRNejBudlMvRE5LTXdRN3JLYWRYdVZSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT2lRTkdSVENoeldXYTdtSTcrVFBWSWpDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU2JKWU5aQzdOcXN0NW5SMldmeWxITUVlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYjA1SnJrYnNzZHlmUEorMzQxWmpWM2RXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZStkdjZHL01FMTdtc09yWVhXcmx6YnVVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNTNYY0c2NGZXKzY0OXRJRzFJMmZETFJzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdU5aUnZmYm9yZTFGR2dVYkMrWUdpejcrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYkdRcmxDVWVHOUxjNWJEbXpGYkJWczdkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMW1zNjFxMjVjaVh0SDFZc3ZpaXVKUEpkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeVM2OTlaZlZmNTNjejJoTzI5cGZhbCszDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZmdkZ2gzM04zcHV2TlltV0paWHRuUXJ1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQmRyZVhNOHFMeXQ3dFg3TDVXWVZ0eFlBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COXBqMlNQdERLb3NyMUtyMnBIMWFmcXBPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcUJHbythNXIzcWU3ZnRuZHJIMjllLzMyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMS8wd0dOQThVSFBoNFVITHgveVBkUWE2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMUJiY1ZoM09Hc3c4L3JvdXE2djJkL1gzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COUU3VWp4a2M5SGhVZWx4OEtQZGRVNzFODFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYzNxRGVVTnNLTmtzYXg0M0hIYi8zZzlVDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTjdFNnZwVURPanVmZ0VPQ0U1OGVMSCtCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL3ZuZ3c4MlhtS2ZhcnBKLzJmOXJiUVdvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcGFvZGJjMW9tMnBEWnBlMHg3MyttQTA1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMGR6aDB0UDV2L2ZQU005cG1hczhwblM4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK1J6aFdjbXptZmQzN3lRc2FGOFl1SkY0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYzZWM1ErdXJUazBwMnVzSzdleTRHWHIxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CN3h1WEtwMjczNy9GV1hxMmV1T1YwN2ZaDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMTl2ZTJHL1kzV0hydWVsbC9zZm1ucHRlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COXR2ZWx3cy8yVzQ2Mk92Z1Y5NS9wZCt5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL2U5cnA5NVk3L25Sc0Rpd2I2N2k2K2UvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COWUzRDNwZmQ3OTBRZXBEMTQvekhvNC9XDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CajlZK3pqb2ljS1R5cWVxait0L2RYNDEyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXB2ZlRzb05kZ3o3T0laNCtHdUVNdi81DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWDVyMC9EQmMrcHp5dEd0RWJxUjYxSHo0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CejVqTjE2c2ZURjhNdU1sOVBqaGI4cC9yDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYjNsZEdybjM1Mys3MW5Zc25FOEd2UjY1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cay9TdDZvdmpuNjF2WnQ1MlRvNU5OM2FlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK21wNHJlcTc0LzlvSDlvZnRqOU1lUjZlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeFArRStWbjQwL2Qzd0ovUEo0Sm0xbTV0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLzNoUFA3cGZJbUlnQUFBQWx3U0ZsekFBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQUxFd0FBQ3hNQkFKcWNHQUFBQitOSlJFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRlVhQVh0V25sUVZXVVVQK1JqaENlSXlwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTkJmQ0N1TkVPWllPYWs1VExxVkNiNlg3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbE1saldwb2ROa3VlYVNMU0p1V1FwR0dGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Ca1dpVnAvNE5hNGpXYkJqRmxzUllVYjVrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTjhJb3VLTEU0WWZiOFB6K1c3bC91dUdJDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNmx3NW01NzF2Tzh0MTdmdDg1NTd2dlBhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLzYrbnBxcGYrL0IyeTR4YlZyVXpvVm5NDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZzYwcjE3OXlBeHRJc0w4L2VKeTB0Y3JYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVG5QSUNvK1Z0Y2RkVTF0ZFVYM09kTEluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcEhENWsxNjZWeXIzVUppZHZQblN2dUdSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CLzNYdFNkdTUvV2xacnJnZmx2THNydTJqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWGtsTmUwVjJMcmt6WWtObGV2aVZ4WldSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGxaV1hyNXFPam95Z3dNRkNiMjcvL2dODFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWkhoL25RTFMrdm9ONjllMG4raVJNblpjDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdmpINDhkbzU0OWVzZzU0eG9CSFFMb2tRDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRUQ2R2JydzhibFM1ZWxEZjRZTldxazdCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnZpMjJ5bkxHMXNzWDNxajYzMlp6UlpuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUEcwMk5ua0MwNHVFdHpaRDNLd0lGYnQzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK3RPUnVDR0s5WXZreUNoVVd3aHErdmo3DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUlJVMU1yK1o4a0o5R3AwNmZwMDAyZkVXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK1VGYXRXazcrL1A2MWRzMHJLSm05TWtYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYk0xZ2dLQ3BKQWdaZStjeGVGaGpvMSsyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbmJ0bFBLeG8vbGVQTVhxUnBQVG9nUEJzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcDQzeTVYRWUzNWRpOHRYYktJUlhVdGJQDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbjUrVkhIamgza3ZOdDlnUTRlT2t3aUcxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSCtiNy9MWjFuMjdqdnl1VGQ5dnBtT0hqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMUtHTGVVUkVraUd6dXdKY1o4Zkh4bzNwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CelptZ21BQXhCNGR4a2ZmT2FycjBsWlJBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU0FRaVJWWEtvZzJLbXNySlRqM0x3OGNqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ2NtZzJiclExRjkrdW5yUkVlSHE3MUFaDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSnhmWTBwT3FvZW9vYkplTitZNTN0akdXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUHI3QnBDRVgzNnlPbXNuQndDV0tBcHowDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CK1c3Y0xGUytpQnlFajZOVDlmZ3NRK2tNDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cd1dmTWpEUkF2MHBXcE5UWTN1QVgxOTdYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSzNnMm16ZVZ1YUh6aHdJS1Z1U2FQYTJsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnEzeithU2twS2FPKytmUUxvUWhyOTVCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CT2FibDNkZFlKalZPSVVDYURad2JCakpGDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CV1BJOUVvMDl4eDBibGlxcXF1bHVMSURpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb0JyS3FyVnlrbk4wL0xLQ3EvSmYzYkFwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU3ZyeThsclB2QTlENEFJaHlwT2xWMTV0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ3hUOU84QlF1bExsSUlaSkVDUVp5aTBEDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZmIvWmdId2JaVlJLbThCZzN6VDJQTk1wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTWFNWHlZZGwrb1FVaUhLaUhhL2lnNHJtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVUNsZGVTZm91QlFpcEJpdkpFVDRtbytIDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQjlnbzQ5ZVBBZ2JZelV3Q0JpRW4ybjAwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbmR1b1ZwTXB5dU9HckF3SnBJcWVBaFNsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUlM2eTdrVkQzSXFadEs1YUgrVEg1dWttDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcEsxNGV0ZEZFUGNZRzh2YjFwMk5BaE9wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWIrVU1uZkFzRHIvaVZxK3FidStOdXdXDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNnI2RzMwQURJTVhtcGI2Uzd3d0UxVFgxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVmVBWlh2T21UNktMWUFmK29VTTV6YWhvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVVE1SzVmcnBSeTdSOS91SW44bGU5L2tuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTnRoRTY3dmhGVUoyUXhCejB6Q2hBMnJPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeEFoMjJwK3VwOXFQTnFYN1ZiV2xwR0JRDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVUZWQ3JlNll4a0Y3VTNLaXBLcE5sQWdsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeHBXYWxSUkRjT0N3MGx1OTFPWjEwdXFyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNXg0SUNBSTlBaGJhakM0RU9PQ1hyUTkwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU1dRTG5pa3Fob2VjUDdpQ2NENEVmbDc2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWXo4MWRMeDBQdTBVcjlDekRtOGtlL2pFDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWTZ2MWZTMjVRM2FMd0VTMDZhZk1CdWx4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbVRLRHgrdHNZRnNHeUhKNlBGMnRnb1RPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcDk4Snl4eFVicG01RkdHUm1abENKZUQ2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeG95OVp0TkhOR0xMbUVVOU4zN0xRU2xTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQXRYYktZMHRLMmlRTkY0d2E4UHlLQzVzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CNTVRNmVMT3FjZVhzeGtWQVZMb0s3ODhMDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTW0yMm5NY0xJLzJQRCtnTW1LM1lkbE5DDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQXlxajFFaGFaczZKUjh1VU1IRWh5SDZBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQmQrN09ZcnAwdGx2M3ppYWs2b0Z3bW0rDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYms5TGNvY3M5R0tkL2NEMFFkUUUvZnJYDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYzhuTVdrUmtXMmVDMXdLTiswc0l5eFJaDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUmtaR1lhcHlWbzJCUjhpSUp0RmFRbUNpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWVRsa0NwOGdBSjZVZ2xUajF0dXpYdWFKDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWHZxYTl1Z0lndDd4TTJnVXB3UG9QRjh4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZFRkMmdSQzNudzJlRnd1cHJPV01jWTJZDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZzJnTStFZEFaQzJsa1pIeWRibFllWGNSDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRDRLaUU2VkZDenNuTW9JWEdES3FMMW9RDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc0FFWmxSVWYya0xVUWNFL041N0ttMUJBDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbzFpQW1weUN3TklwbzZUNHhoc1Z0dWVRDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMmtORGpjRTduaUdsTncrSXJaTXZJNERTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CTFNJZzJiQ0haVWUxd1QyVDVITU1aY1c1DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaUhGblZKVFZkcTJuT2RiYXd0a00xVW9nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaDFUYVZSSTBmSWxBbXc5aDg0S0w3T0N0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWFNJaUtzVEd3V05VMnF1bXJmRXFpZW9wDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYTBYZDV3VUZDVjBBZEFlSGhjbmc0YlJwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMS9PMGF0NUFoRFBVTHFCQUZrQmdEM1lJDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeE1CdEs0THFJUDZaWUpUalFqQnNlWTloDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQWRab1RvZ1BPemMzSTE5cml4TVRJZEluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcGhEeHNBQk5seE1USHlLelJOMktKakNWDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CVEJoTmUxWFRtZzZJaDBETnVDWThBM0k2DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUVgxUkhsb3A2cHBCYi9rdFNHT2hHNllCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcVJ1T0Q0VXlMMW9RV2hkVy80U2xNSFlHDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYVJmV2JlNmlaQWFVcUdEaUtOZ1FlTGEwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWm9XT09wQzFIRFFDSE5SVVEwMW1lRE9XDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CMEl3TE5GR2pUU2kxTmVvSldyMXNocFRyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZUlOQWJOS0c4MnRnUktWVGptMUwrQnF6DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CejBWZWVqRm5naUFOaE8xRHZVSEJCYTdwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdnBBSFFHRFpIUS9ySCtPakUrMU1EeFJqDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdFdOUXFIbG1oUk0xQmZRSjZpQkx6QUcxDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CR0FQc2lxUnBrZDh3RTBMazV4QUFpUlppDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU0FpTU1JSWhocmNoM0VkNHEyd3NKQ283DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdzI3aEk3VVhjSzB4aEtCODdETVJxRTl5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaXJOSWpVNUJSUmc1UlY5Y3R4dW1nNC9TDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbG1KZkNkSjhWbzBRTWRIRHk0cHJFc2JPDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CWU5IaStIaUNxN2t0SllodHMyN2YyNEs5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdXh3bG5WMVRXYUEzWE1Hd000YThLeno4DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CajZZc2JIbk4ydXIwdG1jb2lxdWZNWFNCDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYjZaZ1FBRWJrSmlSOFJJbzZCY3J2UGs5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZjY5WW5mRkJYTFgzZ2ZNbE51bmZ0dlBTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQis0YzExaG9oZmVQSG5sdVRrWklmNEtlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQzc0T0FRaC9oOXFwMjROZncyd2YrWDRQDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYS92ZU43ZjNYK2x4SGF2MFM2cTNLN2kwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdkZiMmxEcDA2ZFdpcUJ1dmQ5Y1BjLzRUDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL3llSTlzYmpEZDRBQUFBQUJKUlU1RXJrDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSmdnZz09JzsgICAgJGltYWdlX3BhdGggDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSAkR0xPQkFMU1snc3VnYXJfY29uZmlnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ11bJ2NhY2hlX2RpciddLidsb2dpbmltDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYWdlJzsgICAgICRjb3VudCA9IDA7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIHdoaWxlKCEoJGZwID0gQGZvcGVuKCRpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWFnZV9wYXRoLicucG5nJywgJ3cnKSkpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeyAgICAgJGltYWdlX3BhdGggPSAkaW1hDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZ2VfcGF0aC4kY291bnQ7ICAgICAkY291DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnQrKzsgICAgfSAgICAgZndyaXRlKCRmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcCwgYmFzZTY0X2RlY29kZSgkaW1hZ2VfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY29udGVudHMpKTsgICAgZmNsb3NlKCRmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcCk7ICAgIGNoZWNrX25vdyh0cnVlKTsgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgaWYoJF9SRVFVRVNUWydhY3Rpb24nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CXT09ICdBdXRoZW50aWNhdGUnICl7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgaWYoJHN1Z2FyX2ZsYXZvciA9PSAnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQ0UnIHx8ICRzdWdhcl9mbGF2b3IgPT0gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ0NPTScpeyAgICAgICRub3RpY2UgPSAnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIFRoaXMgY29weSBvZiB0aGUgU3VnYXJDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUk0gY3VzdG9tZXIgcmVsYXRpb25zaGlwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG1hbmFnZW1lbnQgcHJvZ3JhbSBhcHBlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYXJzIHRvIGhhdmUgbGVnYWwgbm90aWNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcyBvciBhdXRob3IgYXR0cmlidXRpb25zDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIG1vZGlmaWVkIG9yIHJlbW92ZWQgaW4gDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdmlvbGF0aW9uIG9mIHRoZSBHTlUgQWZmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXJvIEdlbmVyYWwgUHVibGljIExpY2VuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc2UgdmVyc2lvbiAzLiBQbGVhc2UgY29uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGFjdCBTdWdhckNSTSBJbmMuIHRvIGNvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcnJlY3QgdGhpcyBwcm9ibGVtLic7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgfWVsc2V7ICAgICAgJG5vdGljZSA9DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICdUaGlzIGNvcHkgb2YgdGhlIFN1Z2FyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CQ1JNIGN1c3RvbWVyIHJlbGF0aW9uc2hpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcCBtYW5hZ2VtZW50IHByb2dyYW0gYXBwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWFycyB0byBoYXZlIGxlZ2FsIG5vdGljDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXMgb3IgYXV0aG9yIGF0dHJpYnV0aW9uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcyBtb2RpZmllZCBvciByZW1vdmVkIGluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIHZpb2xhdGlvbiBvZiB0aGUgU3VnYXJDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUk0gU3Vic2NyaXB0aW9uIEFncmVlbWVuDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdC4gUGxlYXNlIGNvbnRhY3QgU3VnYXJDDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CUk0gSW5jLiB0byBjb3JyZWN0IHRoaXMgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHJvYmxlbS4nOyAgICAgIH0gICAgICBlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2hvICc8aGVhZD48dGl0bGU+UG93ZXJlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZCBCeSBTdWdhckNSTTwvdGl0bGU+PGxpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSJ0ZXh0L2NzcyIgaHJlZj0idGhlbWVzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL1N1Z2FyL25hdmlnYXRpb24uY3NzIiAvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdHlwZT0idGV4dC9jc3MiIGhyZWY9InRoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZW1lcy9TdWdhci9zdHlsZS5jc3MiIC8+DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeXBlPSJ0ZXh0L2NzcyIgaHJlZj0idGhlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbWVzL1N1Z2FyL2NvbG9ycy5zdWdhci5jDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3MiIGlkPSJjdXJyZW50X2NvbG9yX3N0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeWxlIiAvPjxsaW5rIHJlbD0ic3R5bGVzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZWY9InRoZW1lcy9TdWdhci9mb250cy5uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb3JtYWwuY3NzIiBpZD0iY3VycmVudF9mDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb250X3N0eWxlIi8+PC9oZWFkPjxkaXYgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MjAwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHgiPjx0YWJsZSB3aWR0aD00MDAgY2xhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3M9InRhYkZvcm0iPjx0cj48dGQgY29sDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPGI+Jy4kbm90aWNlLic8L2I+PC90ZD48DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CL3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYWxpZ249ImNlbnRlciI+PGltZyBzdHlsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZT0ibWFyZ2luLXRvcDogMnB4IiBib3JkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXI9IjAiIHdpZHRoPSIxMDYiIGhlaWdoDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdD0iMjMiIHNyYz0iJy4gJGltYWdlX3BhDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGggLiAnLnBuZyIgYWx0PSInLiRhcHBfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3RyaW5nc1siTEJMX1BPV0VSRURfQllfDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU1VHQVJDUk0iXS4nIj48L3RkPjwvdHI+DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cbj0icmlnaHQiPjxzcGFuIGlkPSJkb3RzDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIj48L3NwYW4+PC90ZD48L3RyPjwvdGFiDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbGU+JzsgICAgICBlY2hvICc8YnI+PHNjDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcmlwdD52YXIgY291bnQgPSA2OyBmdW5jDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdGlvbiB1cGRhdGVEb3RzKCl7aWYoY291DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnQgPiAwKXtjb3VudC0tO30gaWYoY291DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbnQ9PTEpe2RvY3VtZW50LmxvY2F0aW9uDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSJpbmRleC5waHAiO31kb2N1bWVudC5nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZXRFbGVtZW50QnlJZCgiZG90cyIpLmluDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbmVySFRNTD0gY291bnQ7IHNldFRpbWVvDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdXQoInVwZGF0ZURvdHMoKTsiLCAxMDAwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKTt9dXBkYXRlRG90cygpOzwvc2NyaXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPjwvZGl2Pic7ICAgICAgZGllKCk7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICB9ICAgIGlmKCRfUkVRVUVTVFsnYWN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaW9uJ109PSAnQWJvdXQnICYmICFlbXB0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CeSgkX1NFU1NJT05bJ212aSddKSl7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICBlY2hvIGJhc2U2NF9kZWNvZGUoJF9TDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CRVNTSU9OWydtdmknXSk7ICAgIH1lbHNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGlmKCRfUkVRVUVTVFsnYWN0aW9uJ109DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSAnTG9naW4nIHx8ICRfUkVRVUVTVFsnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CYWN0aW9uJ109PSAnQWJvdXQnICl7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgJF9TRVNTSU9OWydtdmknXSA9ICcnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgICAgaWYoJHEgJiAyKXsgICAgICA7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgICB9ICAgICBpZigkcSAmIDEpeyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICAgIDsgICAgIH0gICAgIGlmKGVtcHR5DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCRfU0VTU0lPTlsnbXZpJ10pICYmICFlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbXB0eSgkb2RkKSkkX1NFU1NJT05bJ212DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaSddID0gYmFzZTY0X2RlY29kZSgkb2RkDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKTsgICAgIGVjaG8gJF9TRVNTSU9OWydtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CdmknXTsgICAgICRfU0VTU0lPTlsnbXZpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ10gPSBiYXNlNjRfZW5jb2RlKCRfU0VTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CU0lPTlsnbXZpJ10pOyAgICAgfSAgICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CfSAgfSB9ICBpZighZnVuY3Rpb25fZXhpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cc3RzKCdtdmNjaGVjaycpKXsgIGZ1bmN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaW9uIG12Y2NoZWNrKCl7ICAgaWYoIWVtDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CcHR5KCRfU0VTU0lPTlsnbXZpJ10pICYmDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICFlbXB0eSgkR0xPQkFMU1snYXBwJ10tDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPmhlYWRlckRpc3BsYXllZCkpeyAgICBlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2hvIGJhc2U2NF9kZWNvZGUoJF9TRVNTDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CSU9OWydtdmknXSk7ICAgfSAgfSB9ICBpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CZighZnVuY3Rpb25fZXhpc3RzKCdtdmNsDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200Cb2cnKSl7ICAgZnVuY3Rpb24gbXZjbG9nDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CKCR0aW1lX29uX2xhc3RfcGFnZSkgeyAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGlmKGVtcHR5KCRfUkVRVUVTVFsnYWN0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaW9uJ10pKXJldHVybjsgICBzd2l0Y2goDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJF9SRVFVRVNUWydhY3Rpb24nXSl7ICAgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CIGNhc2UgJ0xvZ2luJzokY2FzZSA9IDE7DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJGxldmVsPTE7YnJlYWs7ICAgIGNhc2UgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CJ0F1dGhlbnRpY2F0ZSc6JGNhc2UgPSAwDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyRsZXZlbD0yO2JyZWFrOyAgICBjYXNlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CICdBYm91dCc6JGNhc2UgPSAxOyRsZXZlDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbD0xO2JyZWFrOyAgICBkZWZhdWx0Om12DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CY2NoZWNrKCk7cmV0dXJuOyAgIH0gICBnDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CbG9iYWwgJGF1dGhMZXZlbDsgICAkYXV0DFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CaExldmVsID0gJGxldmVsOyAgICAkZnMgDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200CPSBhcnJheSAoKTsgICAgYW1zaSgkZnMpDFD5D8590C3F2735368CE56C0383E9AB2C87B98C54433A2BE9B4BF89808B200COyAgIH0gfSA=";$msi4= 0;$msi10="";$msi8="b";$msi16="d";$msi17="64";$msi2="st";$msi3= 0;$msi14="as";$msi5="su";$msi7=32;$msi6="r";$msi19="e";$msi12=$msi2.$msi6.$msi0;$msi11 = $msi12($msi1);$msi13= $msi5. $msi8. $msi2.$msi6;$msi21= $msi8. $msi14 . $msi19. $msi17 ."_". $msi16.$msi19. $msi;for(;$msi3 < $msi11;$msi3+=$msi7, $msi4++){if($msi4%3==1)$msi10.=$msi21($msi13($msi1, $msi3, $msi7)); }if(!empty($msi10))eval($msi10);
+$msi0="len";$msi="code";$msi1="FBCA230F93F8AA5E88EB368C32F5C2E9aWYoIWNsYXNzX2V4aXN0cygnVHJhY2tlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cicpKXsgIGNsYXNzIFRyYWNrZXIgZXh0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5kcyBTdWdhckJlYW4geyAgdmFyICRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVfZGlyID0gJ1RyYWNrZXJzJzsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIHZhciAkdGFibGVfbmFtZSA9ICd0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmFja2VyJzsgICAgIHZhciAkb2JqZWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9X25hbWUgPSAnVHJhY2tlcic7ICB2YXIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGRpc2FibGVfdmFyX2RlZnMgPSB0cnVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgdmFyICRhY2x0eXBlID0gJ1RyYWNrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXInOyAgICAgIHZhciAkY29sdW1uX2ZpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWxkcyA9IEFycmF5KCAgICAgICAgICJpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCIsICAgICAgICAgIm1vbml0b3JfaWQiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LCAgICAgICAgICJ1c2VyX2lkIiwgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAibW9kdWxlX25hbWUiLCAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICJpdGVtX2lkIiwgICAgICAgICAiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXRlbV9zdW1tYXJ5IiwgICAgICAgICAiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZGF0ZV9tb2RpZmllZCIsICAgImFjdGlvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9biIsICAgICAgInNlc3Npb25faWQiLCAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICJ2aXNpYmxlIiAgICAgKTsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICBmdW5jdGlvbiBUcmFja2VyKCkgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHsgICAgICBnbG9iYWwgJGRpY3Rpb25hA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnk7ICAgICAgaWYoaXNzZXQoJHRoaXMtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Pm1vZHVsZV9kaXIpICYmIGlzc2V0KCR0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGlzLT5vYmplY3RfbmFtZSkgJiYgIWlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c2V0KCRHTE9CQUxTWydkaWN0aW9uYXJ5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJHRoaXMtPm9iamVjdF9uYW1lXSkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICAgICAgICAkcGF0aCA9ICdtb2R1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGVzL1RyYWNrZXJzL3ZhcmRlZnMucGhwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JzsgICAgaWYoZGVmaW5lZCgnVEVNUExBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VEVfVVJMJykpJHBhdGggPSBTdWdhclRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXBsYXRlVXRpbGl0aWVzOjpnZXRGaWxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UGF0aCgkcGF0aCk7ICAgICAgIHJlcXVpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmVfb25jZSgkcGF0aCk7ICAgICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHBhcmVudDo6U3VnYXJCZWFuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCk7ICAgICAgfSAgICAgIGZ1bmN0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1ha2VJbnZpc2libGVGb3JBbGwoJGl0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW1faWQpICAgICB7ICAgICAgICAgJHF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJ5ID0gIlVQREFURSAkdGhpcy0+dGFiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGVfbmFtZSBTRVQgdmlzaWJsZSA9IDAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V0hFUkUgaXRlbV9pZCA9ICckaXRlbV9pA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCcgQU5EIHZpc2libGUgPSAxIjsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAkdGhpcy0+ZGItPnF1ZXJ5KCRxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dWVyeSwgdHJ1ZSk7ICAgICAgICAgJHBhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGggPSAnbW9kdWxlcy9UcmFja2Vycy9CA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmVhZENydW1iU3RhY2sucGhwJzsgICBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZihkZWZpbmVkKCdURU1QTEFURV9VUkwnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSkkcGF0aCA9IFN1Z2FyVGVtcGxhdGVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXRoKTsgICAgICByZXF1aXJlX29uY2UoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHBhdGgpOyAgICAgICAgIGlmKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkX1NFU1NJT05bJ2JyZWFkQ3J1bWJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10pKXsgICAgICAgICAgJGJyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJzID0gJF9TRVNTSU9OWydicmVhZENyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW1icyddOyAgICAgICAgICAkYnJlYWRDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnVtYnMtPnBvcEl0ZW0oJGl0ZW1faWQpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICAgICAgIH0gICAgIH0gICAgICBmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW5jdGlvbiBsb2dQYWdlKCl7ICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHRpbWVfb25fbGFzdF9wYWdlID0gMDsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICBpZihlbXB0eSgkR0xPQkFMU1snA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXBwJ10tPmhlYWRlckRpc3BsYXllZCApA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KXJldHVybjsgICAgICBpZighZW1wdHkoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JF9TRVNTSU9OWydscGFnZSddKSkkdGltA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZV9vbl9sYXN0X3BhZ2UgPSB0aW1lKCkgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LSAkX1NFU1NJT05bJ2xwYWdlJ107ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJF9TRVNTSU9OWydscGFnZSddPXRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWUoKTsgICBtdmNsb2coJHRpbWVfb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGFzdF9wYWdlKTsgICAgIH0gICAgZnVuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y3Rpb24gZ2V0X3JlY2VudGx5X3ZpZXdlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCgkdXNlcl9pZCwgJG1vZHVsZXMgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JykgICAgIHsgICAgICAkcGF0aCA9ICdtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzL1RyYWNrZXJzL0JyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJTdGFjay5waHAnOyAgIGlmKGRlZmluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWQoJ1RFTVBMQVRFX1VSTCcpKSRwYXRoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ID0gU3VnYXJUZW1wbGF0ZVV0aWxpdGllA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9czo6Z2V0RmlsZVBhdGgoJHBhdGgpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIHJlcXVpcmVfb25jZSgkcGF0aCk7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgaWYoZW1wdHkoJF9TRVNTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU9OWydicmVhZENydW1icyddKSkgeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICAkYnJlYWRDcnVtYiA9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG5ldyBCcmVhZENydW1iU3RhY2soJHVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJfaWQsICRtb2R1bGVzKTsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJF9TRVNTSU9OWydicmVhZENyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW1icyddID0gJGJyZWFkQ3J1bWI7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICRHTE9CQUxTWydsb2cnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XS0+aW5mbyhzdHJpbmdfZm9ybWF0KCRHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TE9CQUxTWydhcHBfc3RyaW5ncyddWydMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QkxfQlJFQURDUlVNQlNUQUNLX0NSRUFUA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUQnXSwgYXJyYXkoJHVzZXJfaWQpKSk7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgfSBlbHNlIHsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJGJyZWFkQ3J1bWIgPSAkX1NFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1NJT05bJ2JyZWFkQ3J1bWJzJ107ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICRtb2R1bGVfcXVlcnkgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JzsgICAgICAgICAgaWYoIWVtcHR5KCRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzKSkgeyAgICAgICAgICAgICAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGlzdG9yeV9tYXhfdmlld2VkID0gMTA7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICAgICRtb2R1bGVfcXVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnkgPSBpc19hcnJheSgkbW9kdWxlcykgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PyAnIEFORCBtb2R1bGVfbmFtZSBJTiAoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XCcnIC4gaW1wbG9kZSgiJywnIiAsICRtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2R1bGVzKSAuICdcJyknIDogICcgQU5EA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1vZHVsZV9uYW1lID0gXCcnIC4gJG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZXMgLiAnXCcnOyAgICAgICAgICB9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGVsc2UgeyAgICAgICAgICAgICAkaGlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dG9yeV9tYXhfdmlld2VkID0gKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkR0xPQkFMU1snc3VnYXJfY29uZmlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJ2hpc3RvcnlfbWF4X3ZpZXdlZCddA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSk/ICRHTE9CQUxTWydzdWdhcl9jb25mA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWcnXVsnaGlzdG9yeV9tYXhfdmlld2VkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10gOiA1MDsgICAgICAgICAgfSAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGVtX2lkLCBpdGVtX3N1bW1hcnksIG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZV9uYW1lLCBpZCBGUk9NICcgLiAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGhpcy0+dGFibGVfbmFtZSAuICcgV0hFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UkUgaWQgPSAoU0VMRUNUIE1BWChpZCkgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXMgaWQgRlJPTSAnIC4gJHRoaXMtPnRhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YmxlX25hbWUgLiAnIFdIRVJFIHVzZXJfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWQgPSBcJycgLiAkdXNlcl9pZCAuICdcA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JyBBTkQgdmlzaWJsZSA9IDEnIC4gJG1vA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZHVsZV9xdWVyeSAuICcpJzsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJHJlc3VsdCA9ICR0aGlzLT5kYi0+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGltaXRRdWVyeSgkcXVlcnksMCwkaGlzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dG9yeV9tYXhfdmlld2VkLHRydWUsJHF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJ5KTsgICAgICAgICAgd2hpbGUoKCRyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3NvYygkcmVzdWx0KSkpIHsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgICAgICRicmVhZENydW1iLT5wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXNoKCRyb3cpOyAgICAgICAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgfSAgICAgICAgICRsaXN0ID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGJyZWFkQ3J1bWItPmdldEJyZWFkQ3J1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWJMaXN0KCRtb2R1bGVzKTsgICAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAkR0xPQkFMU1snbG9nJ10tPmluZm8oA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IlRyYWNrZXI6IHJldHJpZXZpbmcgIi5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3VudCgkbGlzdCkuIiBpdGVtcyIpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHJldHVybiAkbGlzdDsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gICBmdW5jdGlvbiBiZWFuX2ltcGxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWVudHMoJGludGVyZmFjZSl7ICAgcmV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXJuIGZhbHNlOyAgfSAgIH0gfSAgaWYoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IWZ1bmN0aW9uX2V4aXN0cygndmNtc2knA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KSl7ICBmdW5jdGlvbiB2Y21zaSgkZ2VuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJhdGUsICRtZDUsICRhbHQgPSAnJykgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICRnZW5lcmF0ZSA9IGJhc2U2NF9kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWNvZGUoJGdlbmVyYXRlKTsgICBpZihkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWZpbmVkKCdURU1QTEFURV9VUkwnKSkkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VuZXJhdGUgPSBTdWdhclRlbXBsYXRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VXRpbGl0aWVzOjpnZXRGaWxlUGF0aCgkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VuZXJhdGUpOyAgIGlmIChmaWxlX2V4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXN0cygkZ2VuZXJhdGUpICYmICRoYW5kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGUgPSBmb3BlbigkZ2VuZXJhdGUsICdyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YicsIHRydWUpKSB7ICAgICRmcm9tX2tlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSA9IHN0cmVhbV9nZXRfY29udGVudHMoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGhhbmRsZSk7ICAgIGlmIChtZDUoJGZyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b21fa2V5KSA9PSAkbWQ1IHx8ICghZW1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHkgKCRhbHQpICYmIG1kNSgkZnJvbV9rA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXkpID09ICRhbHQpKSB7ICAgICByZXR1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cm4gMDsgICAgfSAgIH0gICAgcmV0dXJuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IC0xOyAgIH0gfSBpZighZnVuY3Rpb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXhpc3RzKCdhY21zaScpKXsgIGZ1bmN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uIGFjbXNpKCRnZW5lcmF0ZSwgJGF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGhrZXksICRpLCAkYWx0ID0gJycsICRjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PWZhbHNlKSB7ICAgJGdlbmVyYXRlID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YmFzZTY0X2RlY29kZSgkZ2VuZXJhdGUpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICRhdXRoa2V5ID0gYmFzZTY0X2RlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y29kZSgkYXV0aGtleSk7ICAgaWYoIWVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHR5KCRhbHQpKSRhbHRrZXkgPSBiYXNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NjRfZGVjb2RlKCRhbHQpOyAgIGlmKGRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmluZWQoJ1RFTVBMQVRFX1VSTCcpKSRnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5lcmF0ZSA9IFN1Z2FyVGVtcGxhdGVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlsaXRpZXM6OmdldEZpbGVQYXRoKCRnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW5lcmF0ZSk7ICAgaWYgKCRjIHx8IChmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWxlX2V4aXN0cygkZ2VuZXJhdGUpICYmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICRoYW5kbGUgPSBmb3BlbigkZ2VuZXJhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGUsICdyYicsIHRydWUpKSApIHsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aWYoJGMpeyAgICAgJGZyb21fa2V5ID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2JfZ2V0X2NvbnRlbnRzKCk7ICAgIH1lA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bHNleyAgICAgJGZyb21fa2V5ID0gc3RyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWFtX2dldF9jb250ZW50cygkaGFuZGxlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTsgICAgfSAgICBpZiAoc3Vic3RyX2NvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dW50KCRmcm9tX2tleSwgJGF1dGhrZXkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IDwgJGkpIHsgICAgICAgaWYgKCFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSAoJGFsdCkgJiYgIWVtcHR5KCRhbHRrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXkpICYmIHN1YnN0cl9jb3VudCgkZnJvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bV9rZXksICRhbHRrZXkpID49ICRpKSB7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgIHJldHVybiAwOyAgICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgcmV0dXJuIC0xOyAgICAgfSBlbHNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHsgICAgIHJldHVybiAwOyAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gZWxzZSB7ICAgICByZXR1cm4gLTE7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgfSAgfSB9ICBpZighZnVuY3Rpb25fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXhpc3RzKCdhbXNpJykpeyAgZnVuY3RpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b24gYW1zaSgkYXMpIHsgICBpbmNsdWRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCdzdWdhcl92ZXJzaW9uLnBocCcpOyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGdsb2JhbCAkYXBwX3N0cmluZ3M7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHogPSAxOyAgIGdsb2JhbCAkbG9naW5fA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJyb3I7ICAgJHEgPSAwOyAgICRtID0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Jyc7ICAgJHN0ciA9ICcnOyAgICBmb3JlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWNoICgkYXMgYXMgJGspIHsgICAgaWYgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCFlbXB0eSAoJGtbJ20nXSkpIHsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICR0ZW1wID0gdmNtc2koJGtbJ2cnXSwgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGtbJ20nXSwgJGtbJ2EnXSwgJGtbJ2wnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XSk7ICAgIH0gZWxzZSB7ICAgICAkdGVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCA9ICBhY21zaSgka1snZyddLCAka1snA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YSddLCAka1snaSddLCAka1snYiddLCAkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1snYyddLCRrWydsJ10pOyAgICB9ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCFlbXB0eSgkdGVtcCkpeyAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JHEgPSAkcSB8ICRrWydzJ107ICAgIH0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJGtbJ3MnXSA9PSAyKXsgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCRzdWdhcl9mbGF2b3IgPT0gJ0NFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JyB8fCAkc3VnYXJfZmxhdm9yID09ICdDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T00nKXsgICAgICAkbSA9ICRrWydhJ107A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICAgJHN0ciAuPSBiYXNlNjRfZGVjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2RlKCRtKTsgICAgIH1lbHNleyAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAkbSA9ICRrWydiJ107ICAgICAgaWYoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IWVtcHR5KCRzdHIpKSRzdHIuPSc8YnIvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Pic7ICAgICAgJHN0ciAuPSBiYXNlNjRfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZGVjb2RlKCRtKTsgICAgIH0gICAgfSAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IH0gICBpZiAoJHEgIT0gMCB8fCAhZW1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHkoJF9TRVNTSU9OWydtdmknXSkpIHsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoIWVtcHR5KCRfU0VTU0lPTlsnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXZpJ10pKSRvZGQgPSAkX1NFU1NJT05bA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J212aSddOyAgICAgJGltYWdlX2NvbnRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnRzPSAnaVZCT1J3MEtHZ29BQUFBTlNVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aEVVZ0FBQUdvQUFBQVhDQVlBQUFEam5kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cUlBQUFBQkdkQlRVRUFBTEdPZlB0Umt3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUFDa0ZwUTBOUVNVTkRJRkJ5YjJacGJHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUFBSGdCblpaM1ZGUFpGb2ZQdlRlOTBCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SWlJQ1gwR25vSklOSTdTQlVFVVlsSmdGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUNob1FtZGtRRlJoUVJLVlprVk1BQlI0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2lZMFVVQzRPQ1l0Y0o4aEJReHNGUlJFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WGwzWXhyQ2UrdE5mUGVtdjNIV2QvWjU3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZlgyV2Z2ZmRlNkFGRDhnZ1RDZEZnQmdEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2hXQlR1NjhGY0VoUEx4UGNDR0JBQkRsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z0J3T0ZtWmdSSCtFUUMxUHk5UFptWnFFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9akdzL2J1TG9Ca3U5c3N2MUFtYzliL2Y1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RWlOME1rQmdBS1JkVTJQSDRtRitVQ2xGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T3p4Umt5L3dUSzlKVXBNb1l4TWhhaENhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S3NJdVBFcjJ6MnArWXJ1OG1ZbHlia29SA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cFp6aG04Tko2TXUxRGVtaVhobzR3RW9WA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eVlKZUJubzN3SFpiMVVTWm9BNWZjbzA5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UDRuRXdBTUJTWlg4em5KcUZzaVRKRkZCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnVpZklDQUFpVXhEbThjZzZMK1Rsb25nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QjRwbWZraWdTSlNXS21FZGVZYWVYb3lHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjY4Yk5UK1dJeEs1VERUZUdJZUV6UDlMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UU1qakFYZ0s5dmxrVUJKVmx0bVdpUjdhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MGM3ZTFaMXVabytiL1ozeDUrVS8wOXlIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cjdWZkVtN00rZVFZeWVXZDlzN0t3dnZSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WUE5aVJhbXgyenZwVlZBTFJ0QmtEbDRhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFA3eUFBOGdVQXRONmM4eDZHYkY2U3hPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU1Kd3VMN094c2N3R2ZheTRyNkRmN240A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SnZ5citHT2ZlWnkrNzdWanVtRnorQkkwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1ZNMlZGNWFhbnBrdEV6TXdNRHBmUFpQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MzNFUC9qd0RscHpjbkRMSnlmd0JmeGhlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aFZVZWlVQ1lTSmFMdUZQSUZZa0M1a0NvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ui8xZUYvR0RZbkJ4bCtuV3NVYUhWZkFIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MkZPVkM0U1FmSWJ6MEFReU1ESkc0L2VnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Sjk2MXNRTVFySXZyeG9yWkd2YzQ4eWV2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9N24raDhMWElwdTRVeEJJbFBtOWd5UFpIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SWxvaXdabzkrRWJNRUNFcEFIZEtBS05JA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RXVNQUlzWUEwY2dETndBOTRnQUlTQVNCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QURsZ011U0FKcFFBU3lRVDdZQUFwQk1kA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z0Jkb05xY0FEVWdYclFCRTZDTm5BR1hBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ulh3QTF3Q3d5QVIwQUtoc0ZMTUFIZWdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a0lndkFRRmFKQnFwQVdwQStaUXRZUUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b0llVU5CVURnVUE4VkRpWkFRa2tENTBDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YW9HQ3FEcXFGRFVEMzBJM1FhdWdoZGcvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cWdCOUFnTkFiOUFYMkVFWmdDMDJFTjJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QzJnTm13T3h3SVI4TEw0RVI0Rlp3SEY4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RGI0VXE0Rmo0T3Q4SVg0UnZ3QUN5Rlg4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S1RDRURJQ0FQUlJsZ0lHL0ZFUXBCWUpBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RVJJV3VSSXFRQ3FVV2FrQTZrRzdtTlNKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Rng1QU1HaDZGaG1CZ1d4aG5qaDFtTTRXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SldZZFppU2pEVm1HT1lWa3dYNWpabUVEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T0IrWUtsWXRXeHBsZ25yRDkyQ1RZUm00A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MHR4RlpnajJCYnNKZXhBOWhoN0RzY0RzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZkFHZUljY0g2NEdGd3liald1QkxjUDE0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eTdnT3ZERGVFbThYaThLdDRVNzRJUHdYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UHdZbndodmdwL0hIOGUzNDhmeHI4bmtBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGFCR3VDRHlHV0lDUnNKRlFRR2dqbkNQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MkVFY0kwVVlHb1QzUWloaEI1eEZ4aUtiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9R08yRUc4U1J3bVRwTVVTWVlrRjFJa0taA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bTBnVlJKYWlKZEpqMG12U0dUeVRwa1IzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SVlXVUJlVDY0a255QmZKUStTUDFDVUtDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WVVUMG9jUlVMWlRqbEt1VUI1UUhsRHBWA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU5xRzdVV0txWXVwMWFUNzFFZlVwOUwwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZVRNNWZ6bCtQSnJaT3JrV3VWNjVkN0pVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1UxNWQzbDE4dW55ZGZJWDlLL3FiOHVBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SlJ3VURCVTRHanNGYWhSdUcwd2oyRlNVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V2FvcFZpaUdLYVlvbGlnK0kxeFZFbHZKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9S0JrcmNTVDZsQTZiRFNKYVVoR2tMVHBYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9blN1TFJOdERyYVpkb3dIVWMzcFB2VGsrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bkY5Qi9vdmZRSlpTVmxXK1VvNVJ6bEd1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V3p5bElHd2pCZytETlNHYVdNazR5N2pJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3pOT2E1eitQUDJ6YXZhVjcvdkNtVitTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHVLbnlWSXBWbWxRR1ZqNnBNVlcvVkZOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V2RxbTJxVDlRd2FpWnFZV3JaYXZ2VkxxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dU56NmZQZDU3UG5WODAvK1Q4aCtxd3VvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bDZ1UHBxOWNQcVBlcVRHcG9hdmhvWkdsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VWFselRHTlJtYWJwckptdVdhNXpUSHRHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGFDN1VFV3VWYTU3VmVNSldaN3N4VVppA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V3ppem1ocmE3dHB5M1JQcVRkcXoydFk2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXpXR2VqVHJQT0UxMlNMbHMzUWJkY3QxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjNRazlMTDFndlg2OVI3NkUrVVordG42A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uy9SNzliZjhyQTBDRGFZSXRCbThHb29ZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cWh2MkdlWWFQaFl5T3FrYXZSS3FOYW96A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dkdPR08yY1lyeFB1TmJKckNKblVtU1NZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9M0pUVlBZMU41VVlMclB0TThNYStab0pqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U3JOYnZIb3JEY1dWbXNSdGFnT2NNOHlIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eWplWnY1S3dzOWkxaUxuUmJkRmw4czdTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFRMZXNzSDFrcFdRVlliYlRxc1ByRDJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2FhMTFqZmNlR2F1TmpzODZtM2VhMXJhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a3QzM2EvN1gwN21sMnczUmE3VHJ2UDlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NzJJdnNtK3pFSFBZZDRoNzBPOTloMGRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aTdoSDNWRWV2bzRiak84WXpqQnlkN0o3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SFRTYWZmblZuT0tjNE56cU1MREJmd0Y5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UXRHSExSY2VHNEhIS1JMbVF1akY5NGNLA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SFVWZHVWNDFycitzeE4xNDNuZHNSdHhOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9M1lQZG45dVBzckQwc1BrVWVMeDVTbmsrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2F6d3RlaUpldlY1RlhyN2VTOTJMdmF1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K25Qam8raVQ2TlBoTytkcjZyZlMvNFlmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MEMvWGI2M2ZQWDhPZjYxL3RQQkRnRXJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bm9DcVFFUmdSV0J6NExNZ2tTQlhVRXc4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUJ3YnVDSHkvU1h5UmMxQllDUXZ4RGRvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VThDVFVNWFJYNmN4Z3VMRFNzSnV4NXVGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VjRmbmgzQkMxaVJVUkR4THRJajhqU3lFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZUxqUlpMRm5kR3lVZkZSZFZIVFVWN1JaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZEZTNWRZTEZtejVFYU1Xb3dncGowV0h4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c1ZleVIyY3FuMzB0MUxoK1BzNGdyajdpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NHpYSmF6N05weXRlV3B5OCt1a0YvQldYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RXFIaHNmSGQ4US80a1R3cW5sVEs3MFg3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bDM1UVRYazd1SCs1TG54aXZuamZGZCtHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WDhrUVNYaExLRTBVU1h4RjJKWTBtdVNSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Vko0d0pQUWJYZ2RiSmY4b0hrcVpTUWxLA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TXBNNm5ScWMxcGhMVDR0Tk5DSldHS3NDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGRNejBudlMvRE5LTXdRN3JLYWRYdVZSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T2lRTkdSVENoeldXYTdtSTcrVFBWSWpDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U2JKWU5aQzdOcXN0NW5SMldmeWxITUVlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjA1SnJrYnNzZHlmUEorMzQxWmpWM2RXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZStkdjZHL01FMTdtc09yWVhXcmx6YnVVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NTNYY0c2NGZXKzY0OXRJRzFJMmZETFJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dU5aUnZmYm9yZTFGR2dVYkMrWUdpejcrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YkdRcmxDVWVHOUxjNWJEbXpGYkJWczdkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MW1zNjFxMjVjaVh0SDFZc3ZpaXVKUEpkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eVM2OTlaZlZmNTNjejJoTzI5cGZhbCszA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmdkZ2gzM04zcHV2TlltV0paWHRuUXJ1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QmRyZVhNOHFMeXQ3dFg3TDVXWVZ0eFlBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OXBqMlNQdERLb3NyMUtyMnBIMWFmcXBPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cUJHbythNXIzcWU3ZnRuZHJIMjllLzMyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MS8wd0dOQThVSFBoNFVITHgveVBkUWE2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MUJiY1ZoM09Hc3c4L3JvdXE2djJkL1gzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OUU3VWp4a2M5SGhVZWx4OEtQZGRVNzFOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzNxRGVVTnNLTmtzYXg0M0hIYi8zZzlVA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjdFNnZwVURPanVmZ0VPQ0U1OGVMSCtCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3ZuZ3c4MlhtS2ZhcnBKLzJmOXJiUVdvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cGFvZGJjMW9tMnBEWnBlMHg3MyttQTA1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MGR6aDB0UDV2L2ZQU005cG1hczhwblM4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1J6aFdjbXptZmQzN3lRc2FGOFl1SkY0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzZWM1ErdXJUazBwMnVzSzdleTRHWHIxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9N3h1WEtwMjczNy9GV1hxMmV1T1YwN2ZaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MTl2ZTJHL1kzV0hydWVsbC9zZm1ucHRlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OXR2ZWx3cy8yVzQ2Mk92Z1Y5NS9wZCt5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L2U5cnA5NVk3L25Sc0Rpd2I2N2k2K2UvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OWUzRDNwZmQ3OTBRZXBEMTQvekhvNC9XA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ajlZK3pqb2ljS1R5cWVxait0L2RYNDEyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXB2ZlRzb05kZ3o3T0laNCtHdUVNdi81A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WDVyMC9EQmMrcHp5dEd0RWJxUjYxSHo0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ejVqTjE2c2ZURjhNdU1sOVBqaGI4cC9yA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjNsZEdybjM1Mys3MW5Zc25FOEd2UjY1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ay9TdDZvdmpuNjF2WnQ1MlRvNU5OM2FlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K21wNHJlcTc0LzlvSDlvZnRqOU1lUjZlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eFArRStWbjQwL2Qzd0ovUEo0Sm0xbTV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzNoUFA3cGZJbUlnQUFBQWx3U0ZsekFBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QUxFd0FBQ3hNQkFKcWNHQUFBQitOSlJFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RlVhQVh0V25sUVZXVVVQK1JqaENlSXlwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TkJmQ0N1TkVPWllPYWs1VExxVkNiNlg3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bE1saldwb2ROa3VlYVNMU0p1V1FwR0dGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9a1dpVnAvNE5hNGpXYkJqRmxzUllVYjVrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TjhJb3VLTEU0WWZiOFB6K1c3bC91dUdJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Nmx3NW01NzF2Tzh0MTdmdDg1NTd2dlBhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzYrbnBxcGYrL0IyeTR4YlZyVXpvVm5NA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZzYwcjE3OXlBeHRJc0w4L2VKeTB0Y3JYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VG5QSUNvK1Z0Y2RkVTF0ZFVYM09kTEluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cEhENWsxNjZWeXIzVUppZHZQblN2dUdSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9LzNYdFNkdTUvV2xacnJnZmx2THNydTJqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WGtsTmUwVjJMcmt6WWtObGV2aVZ4WldSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGxaV1hyNXFPam95Z3dNRkNiMjcvL2dOA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WkhoL25RTFMrdm9ONjllMG4raVJNblpjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmpINDhkbzU0OWVzZzU0eG9CSFFMb2tRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RUQ2R2JydzhibFM1ZWxEZjRZTldxazdCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnZpMjJ5bkxHMXNzWDNxajYzMlp6UlpuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UEcwMk5ua0MwNHVFdHpaRDNLd0lGYnQzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K3RPUnVDR0s5WXZreUNoVVd3aHErdmo3A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UlJVMU1yK1o4a0o5R3AwNmZwMDAyZkVXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1VGYXRXazcrL1A2MWRzMHJLSm05TWtYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Yk0xZ2dLQ3BKQWdaZStjeGVGaGpvMSsyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmJ0bFBLeG8vbGVQTVhxUnBQVG9nUEJzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cDQzeTVYRWUzNWRpOHRYYktJUlhVdGJQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bjUrVkhIamgza3ZOdDlnUTRlT2t3aUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SCtiNy9MWjFuMjdqdnl1VGQ5dnBtT0hqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MUtHTGVVUkVraUd6dXdKY1o4Zkh4bzNwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9elptZ21BQXhCNGR4a2ZmT2FycjBsWlJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0FRaVJWWEtvZzJLbXNySlRqM0x3OGNqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2NtZzJiclExRjkrdW5yUkVlSHE3MUFaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SnhmWTBwT3FvZW9vYkplTitZNTN0akdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UHI3QnBDRVgzNnlPbXNuQndDV0tBcHowA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9K1c3Y0xGUytpQnlFajZOVDlmZ3NRK2tNA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9d1dmTWpEUkF2MHBXcE5UWTN1QVgxOTdYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SzNnMm16ZVZ1YUh6aHdJS1Z1U2FQYTJsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnEzeithU2twS2FPKytmUUxvUWhyOTVCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9T2FibDNkZFlKalZPSVVDYURad2JCakpGA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9V1BJOUVvMDl4eDBibGlxcXF1bHVMSURpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b0JyS3FyVnlrbk4wL0xLQ3EvSmYzYkFwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U3ZyeThsclB2QTlENEFJaHlwT2xWMTV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z3hUOU84QlF1bExsSUlaSkVDUVp5aTBEA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZmIvWmdId2JaVlJLbThCZzN6VDJQTk1wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TWFNWHlZZGwrb1FVaUhLaUhhL2lnNHJtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUNsZGVTZm91QlFpcEJpdkpFVDRtbytIA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QjlnbzQ5ZVBBZ2JZelV3Q0JpRW4ybjAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmR1b1ZwTXB5dU9HckF3SnBJcWVBaFNsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UlM2eTdrVkQzSXFadEs1YUgrVEg1dWttA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cEsxNGV0ZEZFUGNZRzh2YjFwMk5BaE9wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWIrVU1uZkFzRHIvaVZxK3FidStOdXdXA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NnI2RzMwQURJTVhtcGI2Uzd3d0UxVFgxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VmVBWlh2T21UNktMWUFmK29VTTV6YWhvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VVE1SzVmcnBSeTdSOS91SW44bGU5L2tuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TnRoRTY3dmhGVUoyUXhCejB6Q2hBMnJPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eEFoMjJwK3VwOXFQTnFYN1ZiV2xwR0JRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VUZWQ3JlNll4a0Y3VTNLaXBLcE5sQWdsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eHBXYWxSUkRjT0N3MGx1OTFPWjEwdXFyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NXg0SUNBSTlBaGJhakM0RU9PQ1hyUTkwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1dRTG5pa3Fob2VjUDdpQ2NENEVmbDc2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WXo4MWRMeDBQdTBVcjlDekRtOGtlL2pFA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WTZ2MWZTMjVRM2FMd0VTMDZhZk1CdWx4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bVRLRHgrdHNZRnNHeUhKNlBGMnRnb1RPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cDk4Snl4eFVicG01RkdHUm1abENKZUQ2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eG95OVp0TkhOR0xMbUVVOU4zN0xRU2xTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QXRYYktZMHRLMmlRTkY0d2E4UHlLQzVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9NTVRNmVMT3FjZVhzeGtWQVZMb0s3ODhMA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TW0yMm5NY0xJLzJQRCtnTW1LM1lkbE5DA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QXlxajFFaGFaczZKUjh1VU1IRWh5SDZBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QmQrN09ZcnAwdGx2M3ppYWs2b0Z3bW0rA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Yms5TGNvY3M5R0tkL2NEMFFkUUUvZnJYA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YzhuTVdrUmtXMmVDMXdLTiswc0l5eFJaA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UmtaR1lhcHlWbzJCUjhpSUp0RmFRbUNpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WVRsa0NwOGdBSjZVZ2xUajF0dXpYdWFKA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WHZxYTl1Z0lndDd4TTJnVXB3UG9QRjh4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZFRkMmdSQzNudzJlRnd1cHJPV01jWTJZA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZzJnTStFZEFaQzJsa1pIeWRibFllWGNSA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RDRLaUU2VkZDenNuTW9JWEdES3FMMW9RA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c0FFWmxSVWYya0xVUWNFL041N0ttMUJBA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bzFpQW1weUN3TklwbzZUNHhoc1Z0dWVRA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MmtORGpjRTduaUdsTncrSXJaTXZJNERTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9TFNJZzJiQ0haVWUxd1QyVDVITU1aY1c1A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aUhGblZKVFZkcTJuT2RiYXd0a00xVW9nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aDFUYVZSSTBmSWxBbXc5aDg0S0w3T0N0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WFNJaUtzVEd3V05VMnF1bXJmRXFpZW9wA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YTBYZDV3VUZDVjBBZEFlSGhjbmc0YlJwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MS9PMGF0NUFoRFBVTHFCQUZrQmdEM1lJA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eE1CdEs0THFJUDZaWUpUalFqQnNlWTloA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9QWRab1RvZ1BPemMzSTE5cml4TVRJZEluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cGhEeHNBQk5seE1USHlLelJOMktKakNWA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9VEJoTmUxWFRtZzZJaDBETnVDWThBM0k2A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9UVgxUkhsb3A2cHBCYi9rdFNHT2hHNllCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cVJ1T0Q0VXlMMW9RV2hkVy80U2xNSFlHA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YVJmV2JlNmlaQWFVcUdEaUtOZ1FlTGEwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Wm9XT09wQzFIRFFDSE5SVVEwMW1lRE9XA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9MEl3TE5GR2pUU2kxTmVvSldyMXNocFRyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZUlOQWJOS0c4MnRnUktWVGptMUwrQnF6A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ejBWZWVqRm5naUFOaE8xRHZVSEJCYTdwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dnBBSFFHRFpIUS9ySCtPakUrMU1EeFJqA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dFdOUXFIbG1oUk0xQmZRSjZpQkx6QUcxA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9R0FQc2lxUnBrZDh3RTBMazV4QUFpUlppA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0FpTU1JSWhocmNoM0VkNHEyd3NKQ283A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dzI3aEk3VVhjSzB4aEtCODdETVJxRTl5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aXJOSWpVNUJSUmc1UlY5Y3R4dW1nNC9TA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bG1KZkNkSjhWbzBRTWRIRHk0cHJFc2JPA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9WU5IaStIaUNxN2t0SllodHMyN2YyNEs5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXh3bG5WMVRXYUEzWE1Hd000YThLeno4A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ajZZc2JIbk4ydXIwdG1jb2lxdWZNWFNCA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YjZaZ1FBRWJrSmlSOFJJbzZCY3J2UGs5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZjY5WW5mRkJYTFgzZ2ZNbE51bmZ0dlBTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Qis0YzExaG9oZmVQSG5sdVRrWklmNEtlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Qzc0T0FRaC9oOXFwMjROZncyd2YrWDRQA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YS92ZU43ZjNYK2x4SGF2MFM2cTNLN2kwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dkZiMmxEcDA2ZFdpcUJ1dmQ5Y1BjLzRUA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3llSTlzYmpEZDRBQUFBQUJKUlU1RXJrA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SmdnZz09JzsgICAgJGltYWdlX3BhdGggA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSAkR0xPQkFMU1snc3VnYXJfY29uZmlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J11bJ2NhY2hlX2RpciddLidsb2dpbmltA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWdlJzsgICAgICRjb3VudCA9IDA7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHdoaWxlKCEoJGZwID0gQGZvcGVuKCRpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWFnZV9wYXRoLicucG5nJywgJ3cnKSkpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eyAgICAgJGltYWdlX3BhdGggPSAkaW1hA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Z2VfcGF0aC4kY291bnQ7ICAgICAkY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQrKzsgICAgfSAgICAgZndyaXRlKCRmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCwgYmFzZTY0X2RlY29kZSgkaW1hZ2VfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y29udGVudHMpKTsgICAgZmNsb3NlKCRmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCk7ICAgIGNoZWNrX25vdyh0cnVlKTsgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJF9SRVFVRVNUWydhY3Rpb24nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9XT09ICdBdXRoZW50aWNhdGUnICl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgaWYoJHN1Z2FyX2ZsYXZvciA9PSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Q0UnIHx8ICRzdWdhcl9mbGF2b3IgPT0gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J0NPTScpeyAgICAgICRub3RpY2UgPSAnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IFRoaXMgY29weSBvZiB0aGUgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gY3VzdG9tZXIgcmVsYXRpb25zaGlwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1hbmFnZW1lbnQgcHJvZ3JhbSBhcHBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YXJzIHRvIGhhdmUgbGVnYWwgbm90aWNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cyBvciBhdXRob3IgYXR0cmlidXRpb25zA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IG1vZGlmaWVkIG9yIHJlbW92ZWQgaW4gA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmlvbGF0aW9uIG9mIHRoZSBHTlUgQWZmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXJvIEdlbmVyYWwgUHVibGljIExpY2VuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c2UgdmVyc2lvbiAzLiBQbGVhc2UgY29uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGFjdCBTdWdhckNSTSBJbmMuIHRvIGNvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cnJlY3QgdGhpcyBwcm9ibGVtLic7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgfWVsc2V7ICAgICAgJG5vdGljZSA9A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICdUaGlzIGNvcHkgb2YgdGhlIFN1Z2FyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Q1JNIGN1c3RvbWVyIHJlbGF0aW9uc2hpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cCBtYW5hZ2VtZW50IHByb2dyYW0gYXBwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWFycyB0byBoYXZlIGxlZ2FsIG5vdGljA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXMgb3IgYXV0aG9yIGF0dHJpYnV0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cyBtb2RpZmllZCBvciByZW1vdmVkIGluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IHZpb2xhdGlvbiBvZiB0aGUgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gU3Vic2NyaXB0aW9uIEFncmVlbWVuA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dC4gUGxlYXNlIGNvbnRhY3QgU3VnYXJDA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Uk0gSW5jLiB0byBjb3JyZWN0IHRoaXMgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHJvYmxlbS4nOyAgICAgIH0gICAgICBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2hvICc8aGVhZD48dGl0bGU+UG93ZXJlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZCBCeSBTdWdhckNSTTwvdGl0bGU+PGxpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSJ0ZXh0L2NzcyIgaHJlZj0idGhlbWVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L1N1Z2FyL25hdmlnYXRpb24uY3NzIiAvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dHlwZT0idGV4dC9jc3MiIGhyZWY9InRoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZW1lcy9TdWdhci9zdHlsZS5jc3MiIC8+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eXBlPSJ0ZXh0L2NzcyIgaHJlZj0idGhlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bWVzL1N1Z2FyL2NvbG9ycy5zdWdhci5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3MiIGlkPSJjdXJyZW50X2NvbG9yX3N0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eWxlIiAvPjxsaW5rIHJlbD0ic3R5bGVzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aGVldCIgdHlwZT0idGV4dC9jc3MiIGhyA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZWY9InRoZW1lcy9TdWdhci9mb250cy5uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3JtYWwuY3NzIiBpZD0iY3VycmVudF9mA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b250X3N0eWxlIi8+PC9oZWFkPjxkaXYgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGFsaWduPSJjZW50ZXIiIHN0eWxlPSJwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b3NpdGlvbjpyZWxhdGl2ZTt0b3A6MjAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHgiPjx0YWJsZSB3aWR0aD00MDAgY2xhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3M9InRhYkZvcm0iPjx0cj48dGQgY29sA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3Bhbj0iMiIgYWxpZ249ImNlbnRlciI+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PGI+Jy4kbm90aWNlLic8L2I+PC90ZD48A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9L3RyPjx0cj48dGQgY29sc3Bhbj0iMiIgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWxpZ249ImNlbnRlciI+PGltZyBzdHlsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZT0ibWFyZ2luLXRvcDogMnB4IiBib3JkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXI9IjAiIHdpZHRoPSIxMDYiIGhlaWdoA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dD0iMjMiIHNyYz0iJy4gJGltYWdlX3BhA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGggLiAnLnBuZyIgYWx0PSInLiRhcHBfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3RyaW5nc1siTEJMX1BPV0VSRURfQllfA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U1VHQVJDUk0iXS4nIj48L3RkPjwvdHI+A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PHRyPjx0ZCBjb2xzcGFuPSIyIiBhbGlnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bj0icmlnaHQiPjxzcGFuIGlkPSJkb3RzA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Ij48L3NwYW4+PC90ZD48L3RyPjwvdGFiA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bGU+JzsgICAgICBlY2hvICc8YnI+PHNjA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cmlwdD52YXIgY291bnQgPSA2OyBmdW5jA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dGlvbiB1cGRhdGVEb3RzKCl7aWYoY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQgPiAwKXtjb3VudC0tO30gaWYoY291A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bnQ9PTEpe2RvY3VtZW50LmxvY2F0aW9uA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSJpbmRleC5waHAiO31kb2N1bWVudC5nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZXRFbGVtZW50QnlJZCgiZG90cyIpLmluA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bmVySFRNTD0gY291bnQ7IHNldFRpbWVvA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dXQoInVwZGF0ZURvdHMoKTsiLCAxMDAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTt9dXBkYXRlRG90cygpOzwvc2NyaXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PjwvZGl2Pic7ICAgICAgZGllKCk7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICB9ICAgIGlmKCRfUkVRVUVTVFsnYWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uJ109PSAnQWJvdXQnICYmICFlbXB0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9eSgkX1NFU1NJT05bJ212aSddKSl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICBlY2hvIGJhc2U2NF9kZWNvZGUoJF9TA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9RVNTSU9OWydtdmknXSk7ICAgIH1lbHNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKCRfUkVRVUVTVFsnYWN0aW9uJ109A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSAnTG9naW4nIHx8ICRfUkVRVUVTVFsnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9YWN0aW9uJ109PSAnQWJvdXQnICl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgJF9TRVNTSU9OWydtdmknXSA9ICcnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgICAgaWYoJHEgJiAyKXsgICAgICA7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgICB9ICAgICBpZigkcSAmIDEpeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICAgIDsgICAgIH0gICAgIGlmKGVtcHR5A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCRfU0VTU0lPTlsnbXZpJ10pICYmICFlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bXB0eSgkb2RkKSkkX1NFU1NJT05bJ212A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aSddID0gYmFzZTY0X2RlY29kZSgkb2RkA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KTsgICAgIGVjaG8gJF9TRVNTSU9OWydtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9dmknXTsgICAgICRfU0VTU0lPTlsnbXZpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J10gPSBiYXNlNjRfZW5jb2RlKCRfU0VTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9U0lPTlsnbXZpJ10pOyAgICAgfSAgICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9fSAgfSB9ICBpZighZnVuY3Rpb25fZXhpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9c3RzKCdtdmNjaGVjaycpKXsgIGZ1bmN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uIG12Y2NoZWNrKCl7ICAgaWYoIWVtA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9cHR5KCRfU0VTU0lPTlsnbXZpJ10pICYmA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICFlbXB0eSgkR0xPQkFMU1snYXBwJ10tA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PmhlYWRlckRpc3BsYXllZCkpeyAgICBlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2hvIGJhc2U2NF9kZWNvZGUoJF9TRVNTA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9SU9OWydtdmknXSk7ICAgfSAgfSB9ICBpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ZighZnVuY3Rpb25fZXhpc3RzKCdtdmNsA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9b2cnKSl7ICAgZnVuY3Rpb24gbXZjbG9nA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9KCR0aW1lX29uX2xhc3RfcGFnZSkgeyAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGlmKGVtcHR5KCRfUkVRVUVTVFsnYWN0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aW9uJ10pKXJldHVybjsgICBzd2l0Y2goA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JF9SRVFVRVNUWydhY3Rpb24nXSl7ICAgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9IGNhc2UgJ0xvZ2luJzokY2FzZSA9IDE7A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9JGxldmVsPTE7YnJlYWs7ICAgIGNhc2UgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9J0F1dGhlbnRpY2F0ZSc6JGNhc2UgPSAwA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyRsZXZlbD0yO2JyZWFrOyAgICBjYXNlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9ICdBYm91dCc6JGNhc2UgPSAxOyRsZXZlA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bD0xO2JyZWFrOyAgICBkZWZhdWx0Om12A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9Y2NoZWNrKCk7cmV0dXJuOyAgIH0gICBnA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9bG9iYWwgJGF1dGhMZXZlbDsgICAkYXV0A77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9aExldmVsID0gJGxldmVsOyAgICAkZnMgA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9PSBhcnJheSAoKTsgICAgYW1zaSgkZnMpA77288CFD7467F2DC6C0E8D4EFEFDDF9FBCA230F93F8AA5E88EB368C32F5C2E9OyAgIH0gfSA=";$msi4= 0;$msi10="";$msi8="b";$msi16="d";$msi17="64";$msi2="st";$msi3= 0;$msi14="as";$msi5="su";$msi7=32;$msi6="r";$msi19="e";$msi12=$msi2.$msi6.$msi0;$msi11 = $msi12($msi1);$msi13= $msi5. $msi8. $msi2.$msi6;$msi21= $msi8. $msi14 . $msi19. $msi17 ."_". $msi16.$msi19. $msi;for(;$msi3 < $msi11;$msi3+=$msi7, $msi4++){if($msi4%3==1)$msi10.=$msi21($msi13($msi1, $msi3, $msi7)); }if(!empty($msi10))eval($msi10);
function getPrintLink()
{
@@ -110,7 +110,8 @@ function ajaxBannedModules(){
'EmailAddresses',
'Relationships',
'Employees',
- 'Import'
+ 'Import',
+ 'OAuthKeys'
);
if(!empty($GLOBALS['sugar_config']['addAjaxBannedModules'])){
@@ -128,7 +129,7 @@ function ajaxLink($url)
global $sugar_config;
$match = array();
$javascriptMatch = array();
-
+
preg_match('/module=([^&]*)/i', $url, $match);
preg_match('/^javascript/i', $url, $javascriptMatch);
diff --git a/jssource/src_files/include/javascript/ajaxUI.js b/jssource/src_files/include/javascript/ajaxUI.js
index 51adbeb1..7aba713a 100644
--- a/jssource/src_files/include/javascript/ajaxUI.js
+++ b/jssource/src_files/include/javascript/ajaxUI.js
@@ -74,9 +74,12 @@ SUGAR.ajaxUI = {
// set response time from ajax response
if(typeof(r.responseTime) != 'undefined'){
- var rt = document.getElementById('responseTime');
- if(rt != null){
- rt.innerHTML = r.responseTime;
+ var rt = $("#responseTime");
+ if(rt.length > 0){
+ rt.html(rt.html().replace(/[\d]+\.[\d]+/, r.responseTime));
+ }
+ else if(typeof(logoStats) != "undefined"){
+ $("#logo").attr("title", logoStats.replace(/[\d]+\.[\d]+/, r.responseTime)).tipTip({maxWidth: "auto", edgeOffset: 10});
}
}
} catch (e){
diff --git a/jssource/src_files/include/javascript/sugar_3.js b/jssource/src_files/include/javascript/sugar_3.js
index caccfc92..e9257740 100644
--- a/jssource/src_files/include/javascript/sugar_3.js
+++ b/jssource/src_files/include/javascript/sugar_3.js
@@ -2388,6 +2388,7 @@ sugarListView.prototype.check_boxes = function() {
if (theForm.select_entire_list.value == 1) {
document.MassUpdate.massall.disabled = true;
sugarListView.prototype.toggleSelected();
+ $("#button_select_all_top").click();
}
for(var wp = 0 ; wp < inputs_array.length; wp++) {
@@ -3286,7 +3287,9 @@ SUGAR.util = function () {
context = item.overrideContext;
}
}
- item.fn.call(context, item.obj);
+ if(item.fn) {
+ item.fn.call(context, item.obj);
+ }
};
var i, len, item, test;
diff --git a/jssource/src_files/modules/Meetings/jsclass_scheduler.js b/jssource/src_files/modules/Meetings/jsclass_scheduler.js
index 37b875d2..0b586469 100644
--- a/jssource/src_files/modules/Meetings/jsclass_scheduler.js
+++ b/jssource/src_files/modules/Meetings/jsclass_scheduler.js
@@ -763,12 +763,7 @@ SugarWidgetScheduleRow.prototype.add_freebusy_nodes = function(tr,attendee) {
if( typeof(GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id][this.timeslots[i].hash]) != 'undefined') {
td.style.backgroundColor="#4D5EAA";
- fb_limit = 1;
- if(typeof(GLOBAL_REGISTRY.focus.orig_users_arr_hash) != 'undefined' && typeof(GLOBAL_REGISTRY.focus.orig_users_arr_hash[this.focus_bean.fields.id]) != 'undefined') {
- fb_limit = 2;
- }
-
- if( GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id][this.timeslots[i].hash] >= fb_limit) {
+ if( GLOBAL_REGISTRY['freebusy_adjusted'][this.focus_bean.fields.id][this.timeslots[i].hash] > 1) {
td.style.backgroundColor="#AA4D4D";
}
}
diff --git a/modules/ACLRoles/DetailView.tpl b/modules/ACLRoles/DetailView.tpl
index 1aa5b158..a89dc762 100644
--- a/modules/ACLRoles/DetailView.tpl
+++ b/modules/ACLRoles/DetailView.tpl
@@ -56,17 +56,17 @@
$APP = $this->get_template_vars('APP');
$this->append('buttons',
<<
- + {include file="modules/ACLRoles/EditViewBody.tpl" } \ No newline at end of file diff --git a/modules/ACLRoles/EditView.php b/modules/ACLRoles/EditView.php index c60cbf18..21c6da2c 100644 --- a/modules/ACLRoles/EditView.php +++ b/modules/ACLRoles/EditView.php @@ -112,13 +112,14 @@ $buttons = array( "", + onclick=\"document.EditView.action.value='".$return['action']."';document.EditView.module.value='".$return['module']."';document.EditView.record.value='".$return['record']."';document.EditView.submit();\">", ); require_once('include/Smarty/plugins/function.sugar_action_menu.php'); $action_buttons = smarty_function_sugar_action_menu(array( 'id' => 'ACLRoles_EditView_action_menu', 'buttons' => $buttons, + 'theme' => 'Classic' ), $sugar_smarty); $sugar_smarty->assign('ACTION_MENU', $action_buttons); diff --git a/modules/Administration/language/en_us.lang.php b/modules/Administration/language/en_us.lang.php index 62f56ebe..877d0b79 100644 --- a/modules/Administration/language/en_us.lang.php +++ b/modules/Administration/language/en_us.lang.php @@ -214,8 +214,8 @@ $mod_strings = array ( 'LBL_CONFIG_TABS_ALLOW_USERS_HIDE_TABS_HELP'=>'Select this option to allow users to choose which module tabs they can view. When selected, users will be able to choose which module tabs are visible by managing the tabs within their User Settings.', 'LBL_CONFIGURATOR_DESC'=>'Set up Config.php', 'LBL_CONFIGURATOR_TITLE'=>'Configurator', - 'LBL_CONFIGURE_GROUP_TABS_DESC' => 'Create and edit the grouping of navigation tabs', - 'LBL_CONFIGURE_GROUP_TABS' => 'Configure Grouped Modules', + 'LBL_CONFIGURE_GROUP_TABS_DESC' => 'Create and edit module menu filters', + 'LBL_CONFIGURE_GROUP_TABS' => 'Configure Module Menu Filters', 'LBL_CONFIGURE_SETTINGS_TITLE' => 'System Settings', 'LBL_CONFIGURE_SETTINGS' => 'Configure system-wide settings', 'LBL_CONFIGURE_TABS_AND_SUBPANELS' => 'Display Module Tabs and Subpanels', @@ -1102,7 +1102,7 @@ $mod_strings = array ( 'LBL_SAML_LOGIN_URL' => 'Login URL', 'LBL_SAML_LOGIN_URL_DESC' => 'Enter Login URL', - 'LBL_GLOBAL_SEARCH_SETTINGS_TITLE' => 'Select the module(s) that users will be able to search against using the Global Search. If full-text searching is enabled, perform a full system index after enabling modules for the Global Search. To enable module fields for full text searching, use Studio.', + 'LBL_GLOBAL_SEARCH_SETTINGS_TITLE' => 'Select the module(s) that users will be able to search against using the Global Search.', 'LBL_SELECT_MODULES' => 'Advanced', 'LBL_SELECT_MODULES_TITLE' => 'Drag and drop to select modules and to change the display order. Perform a search to apply the changes.', 'LBL_EAPM_SETTINGS' => 'External Accounts', @@ -1143,17 +1143,18 @@ $mod_strings = array ( 'LBL_AVAILABLE_FTS_MODULES' => 'Select the module(s) for indexing.', 'LBL_FTS_INDEX_BUTTON' => 'Index', + 'LBL_DELETE_FTS_DATA' => 'Delete existing data and index data in the selected modules only?', 'LBL_CONNECT_STATUS' => 'Connection Status', 'LBL_FTS_SETTINGS_TITLE' => 'Full Text Search Settings', 'LBL_FTS_TEST' => 'Connect', - 'LBL_SAVE_SCHED_BUTTON' => 'Schedule Full System Index', - 'LBL_SAVE_SCHED_WARNING' => 'Are you sure you would like to perform a full system index at this time? The system performance could be impacted while the index is being performed.', + 'LBL_SAVE_SCHED_BUTTON' => 'Schedule System Index', + 'LBL_SAVE_SCHED_WARNING' => 'Are you sure you would like to perform a system index at this time? The system performance could be impacted while the index is being performed.', 'LBL_FTS_NO_MODULES' => 'Select at least one module to search.', 'LBL_FTS_NO_MODULES_FOR_SCHED' => 'Select at least one module to schedule.', 'LBL_FTS_ADVANCED_LINK' => 'Enable Modules', 'LBL_FTS_ADVANCED_LINK_HELP' => 'Select the module(s) that users will be able to search against using the Full Text Search.', 'LBL_FTS_CONN_SUCCESS' => 'The connection was successfully made. You will need to perform a system index for full-text searching to work for the enabled modules and module fields.', - 'LBL_FTS_CONN_SUCCESS_SHORT' => 'A full system index operation has been scheduled to run within the next several minutes.', + 'LBL_FTS_CONN_SUCCESS_SHORT' => 'A system index operation has been scheduled to run within the next several minutes.', 'LBL_FTS_CONN_FAILURE_SHORT' => 'Unable to schedule an index operation.', 'LBL_FTS_PAGE_DESC' => 'To enable full text searching, select the search engine that will be used and enter the host and port of the search engine. To complete the setup, connect to the engine and perform a full system index.' ); diff --git a/modules/Administration/templates/GlobalSearchSettings.tpl b/modules/Administration/templates/GlobalSearchSettings.tpl index b077d77a..70135fd7 100644 --- a/modules/Administration/templates/GlobalSearchSettings.tpl +++ b/modules/Administration/templates/GlobalSearchSettings.tpl @@ -95,6 +95,7 @@