diff --git a/account.php b/account.php index 947a4c36f3aa62d83d7fb15447f9c5aecf9967df..18231ab48938671748b561d05611239e27fe86f5 100644 --- a/account.php +++ b/account.php @@ -77,6 +77,10 @@ elseif ($_POST) { '</strong></a>')); $errors['err'] = __('Unable to register account. See messages below'); } + elseif (!$addr) + $errors['email'] = sprintf(__('%s is a required field'), $user_form->getField('email')->getLocal('label')); + elseif (!$user_form->getField('name')->getClean()) + $errors['name'] = sprintf(__('%s is a required field'), $user_form->getField('name')->getLocal('label')); // Users created from ClientCreateRequest elseif (isset($_POST['backend']) && !($user = User::fromVars($user_form->getClean()))) $errors['err'] = __('Unable to create local account. See messages below'); diff --git a/assets/default/css/theme.css b/assets/default/css/theme.css index 7e7027a2160ba4476087169fc39cb2b859a769cd..f27deeaed27a94a465ba971d79dbf9c33ab540b4 100644 --- a/assets/default/css/theme.css +++ b/assets/default/css/theme.css @@ -113,7 +113,7 @@ fieldset { a, .link { color: #0072bc; text-decoration: none; - display: inline-block; + display: inline; margin-bottom: 1px; } a:hover, .link:hover { diff --git a/images/oscar-favicon-16x16.png b/images/oscar-favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..fdc1453af7907bd09bcee34a260f6f782550ebb2 Binary files /dev/null and b/images/oscar-favicon-16x16.png differ diff --git a/images/oscar-favicon-32x32.png b/images/oscar-favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..0a13dfa70bb57865a9916587addc01beedc677dc Binary files /dev/null and b/images/oscar-favicon-32x32.png differ diff --git a/include/ajax.forms.php b/include/ajax.forms.php index 70c57e15bf233c11099eca2350633565141be953..41506c872f076bcc66d8582e1ef38bb4a462e4c0 100644 --- a/include/ajax.forms.php +++ b/include/ajax.forms.php @@ -381,9 +381,15 @@ class DynamicFormsAjaxAPI extends AjaxController { } function attach() { + global $thisstaff; + + $config = DynamicFormField::objects() + ->filter(array('type__contains'=>'thread')) + ->first()->getConfiguration(); $field = new FileUploadField(); + $field->_config = $config; return JsonDataEncoder::encode( - array('id'=>$field->ajaxUpload()) + array('id'=>$field->ajaxUpload($thisstaff ? true : false)) ); } diff --git a/include/ajax.orgs.php b/include/ajax.orgs.php index ccdd3597cd1ce52a0a84c1cef46471b23318077c..9c2a2b207c11ba72e8b6c7fa259670d0b4b6a0d7 100644 --- a/include/ajax.orgs.php +++ b/include/ajax.orgs.php @@ -32,7 +32,7 @@ class OrgsAjaxAPI extends AjaxController { $q = $_REQUEST['q']; $limit = isset($_REQUEST['limit']) ? (int) $_REQUEST['limit']:25; - if (strlen($q) < 3) + if (strlen(Format::searchable($q)) < 3) return $this->encode(array()); $orgs = Organization::objects() diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php index c27914de5f49b603284a60d2604409c0291e0e27..aa98426b03fde1e2687f587f17a1e024ecb0b388 100644 --- a/include/ajax.tickets.php +++ b/include/ajax.tickets.php @@ -53,7 +53,7 @@ class TicketsAjaxAPI extends AjaxController { $q = $_REQUEST['q']; - if (strlen($q) < 3) + if (strlen(Format::searchable($q)) < 3) return $this->encode(array()); global $ost; diff --git a/include/ajax.users.php b/include/ajax.users.php index 07fc02f7917db0501cd0b949face1bd3042ddfc2..d42349924e89430df12309c7159b1c7eba839fa6 100644 --- a/include/ajax.users.php +++ b/include/ajax.users.php @@ -39,7 +39,7 @@ class UsersAjaxAPI extends AjaxController { $emails=array(); $matches = array(); - if (strlen($q) < 3) + if (strlen(Format::searchable($q)) < 3) return $this->encode(array()); if (!$type || !strcasecmp($type, 'remote')) { @@ -85,7 +85,6 @@ class UsersAjaxAPI extends AjaxController { if ($emails = array_filter($emails)) { $users->union(User::objects() ->values_flat('id', 'name', 'default_email__address') - ->annotate(array('__relevance__' => new SqlCode(1))) ->filter(array( 'emails__address__in' => $emails ))); diff --git a/include/class.auth.php b/include/class.auth.php index 1dc5a9ccf8f05172bd081929dfcb4d50c4104fa8..d984cb3cb1296051bf0cf4bbe9190984017ca70a 100644 --- a/include/class.auth.php +++ b/include/class.auth.php @@ -887,8 +887,9 @@ class StaffAuthStrikeBackend extends AuthStrikeBackend { ._S('Time').": ".date('M j, Y, g:i a T')."\n\n" ._S('Attempts').": {$authsession['strikes']}\n" ._S('Timeout').": ".sprintf(_N('%d minute', '%d minutes', $timeout), $timeout)."\n\n"; + $admin_alert = ($cfg->alertONLoginError() == 1) ? TRUE : FALSE; $ost->logWarning(sprintf(_S('Excessive login attempts (%s)'),$username), - $alert, $cfg->alertONLoginError()); + $alert, $admin_alert); return new AccessDenied(__('Forgot your login info? Contact Admin.')); //Log every other third failed login attempt as a warning. } elseif($authsession['strikes']%3==0) { @@ -947,14 +948,15 @@ class UserAuthStrikeBackend extends AuthStrikeBackend { _S('IP').": {$_SERVER['REMOTE_ADDR']}\n". _S('Time').": ".date('M j, Y, g:i a T')."\n\n". _S('Attempts').": {$authsession['strikes']}"; - $ost->logError(_S('Excessive login attempts (user)'), $alert, ($cfg->alertONLoginError())); + $admin_alert = ($cfg->alertONLoginError() == 1 ? TRUE : FALSE); + $ost->logError(_S('Excessive login attempts (user)'), $alert, $admin_alert); return new AccessDenied(__('Access denied')); } elseif($authsession['strikes']%3==0) { //Log every third failed login attempt as a warning. $alert=_S('Username').": {$username}\n". _S('IP').": {$_SERVER['REMOTE_ADDR']}\n". _S('Time').": ".date('M j, Y, g:i a T')."\n\n". _S('Attempts').": {$authsession['strikes']}"; - $ost->logWarning(_S('Failed login attempt (user)'), $alert); + $ost->logWarning(_S('Failed login attempt (user)'), $alert, false); } } diff --git a/include/class.category.php b/include/class.category.php index d8cbb72f27de63b4fe25e2256f49cb20f740ab59..3eeedfd144b09721f4004a31a3aa26c9be2e5108 100644 --- a/include/class.category.php +++ b/include/class.category.php @@ -21,9 +21,16 @@ class Category extends VerySimpleModel { 'pk' => array('category_id'), 'ordering' => array('name'), 'joins' => array( + 'parent' => array( + 'constraint' => array('category_pid' => 'Category.category_id'), + 'null' => true, + ), + 'children' => array( + 'reverse' => 'Category.parent', + ), 'faqs' => array( 'reverse' => 'FAQ.category' - ), + ), ), ); @@ -36,7 +43,17 @@ class Category extends VerySimpleModel { /* ------------------> Getter methods <--------------------- */ function getId() { return $this->category_id; } function getName() { return $this->name; } - function getNumFAQs() { return $this->faqs->count(); } + function getFullName() { + return self::getNameById($this->category_id) ?: $this->getLocalName(); + } + function getNumFAQs($primary=false) { + $count = $this->faqs->count(); + if (!$primary && $this->children) + foreach ($this->children as $c) + $count += $c->faqs->count(); + + return $count; + } function getDescription() { return $this->description; } function getDescriptionWithImages() { return Format::viewableImages($this->description); } function getNotes() { return $this->notes; } @@ -109,6 +126,37 @@ class Category extends VerySimpleModel { ->limit(5); } + function getPublicSubCategories() { + return $this->getSubCategories(array('public' => true)); + } + + function getSubCategories($criteria=array()) { + + $categories = self::objects() + ->filter(array('category_pid' => $this->getId())); + if (isset($criteria['public']) && $categories) { + $categories + ->exclude( + Q::any(array( + 'ispublic'=>Category::VISIBILITY_PRIVATE, + 'faqs__ispublished'=>FAQ::VISIBILITY_PRIVATE, + ))) + ->annotate(array('faq_count' => SqlAggregate::COUNT( + SqlCase::N() + ->when(array( + 'faqs__ispublished__gt'=> FAQ::VISIBILITY_PRIVATE), 1) + ->otherwise(null) + ))) + ->filter(array('faq_count__gt'=>0)); + } else { + $categories + ->annotate(array( + 'faq_count'=>SqlAggregate::COUNT('faqs'))); + } + + return $categories; + } + /* ------------------> Setter methods <--------------------- */ function setName($name) { $this->name=$name; } function setNotes($notes) { $this->notes=$notes; } @@ -128,7 +176,7 @@ class Category extends VerySimpleModel { $errors['name'] = __('Category name is required'); elseif (strlen($vars['name']) < 3) $errors['name'] = __('Name is too short. 3 chars minimum'); - elseif (($cid=self::findIdByName($vars['name'])) && $cid != $vars['id']) + elseif (($cid=self::findIdByName($vars['name'], $vars['pid'])) && $cid != $vars['id']) $errors['name'] = __('Category already exists'); if (!$vars['description']) @@ -143,6 +191,7 @@ class Category extends VerySimpleModel { $this->ispublic = $vars['ispublic']; $this->name = $vars['name']; + $this->category_pid = $vars['pid'] ?: 0; $this->description = Format::sanitize($vars['description']); $this->notes = Format::sanitize($vars['notes']); @@ -223,26 +272,72 @@ class Category extends VerySimpleModel { /* ------------------> Static methods <--------------------- */ - static function findIdByName($name) { + static function findIdByName($name, $pid=null) { $row = self::objects()->filter(array( - 'name'=>$name + 'name'=>$name, + 'category_pid' => $pid ?: null ))->values_flat('category_id')->first(); return ($row) ? $row[0] : null; } - static function findByName($name) { + static function findByName($name, $pid=null) { return self::objects()->filter(array( - 'name'=>$name + 'name'=>$name, + 'category_pid' => $pid ?: null ))->one(); } + static function getNameById($id) { + $names = static::getCategories(); + return $names[$id] ?: ''; + } + static function getFeatured() { return self::objects()->filter(array( 'ispublic'=>self::VISIBILITY_FEATURED )); } + static function getCategories($criteria=null, $localize=true) { + static $categories = null; + + if (!isset($categories) || $criteria) { + $categories = array(); + $query = self::objects(); + $query->order_by('name') + ->values('category_id', 'category_pid', 'name', 'parent'); + + foreach ($query as $row) + $categories[$row['category_id']] = $row; + + // Resolve parent names + $names = array(); + foreach ($categories as $id=>$info) { + $name = $info['name']; + $loop = array($id=>true); + $parent = false; + while ($info['category_pid'] && ($info = $categories[$info['category_pid']])) { + $name = sprintf('%s / %s', $info['name'], $name); + if (isset($loop[$info['category_pid']])) + break; + $loop[$info['category_pid']] = true; + $parent = $info; + } + // TODO: localize category names + $names[$id] = $name; + } + asort($names); + + if ($criteria) + return $names; + + $categories = $names; + } + + return $categories; + } + static function create($vars=false) { $category = new static($vars); $category->created = SqlFunction::NOW(); diff --git a/include/class.cron.php b/include/class.cron.php index e545c5afb7acddf48a97f6e9c0b05b252c5ac116..ee67f7f31aac6a742a411a61358726636d22eba3 100644 --- a/include/class.cron.php +++ b/include/class.cron.php @@ -51,12 +51,17 @@ class Cron { AttachmentFile::deleteOrphans(); } + function CleanExpiredSessions() { + require_once(INCLUDE_DIR.'class.ostsession.php'); + DbSessionBackend::cleanup(); + } + function MaybeOptimizeTables() { // Once a week on a 5-minute cron $chance = rand(1,2000); switch ($chance) { case 42: - @db_query('OPTIMIZE TABLE '.LOCK_TABLE); + @db_query('OPTIMIZE TABLE `'.LOCK_TABLE.'`'); break; case 242: @db_query('OPTIMIZE TABLE '.SYSLOG_TABLE); @@ -100,6 +105,7 @@ class Cron { self::MailFetcher(); self::TicketMonitor(); self::PurgeLogs(); + self::CleanExpiredSessions(); // Run file purging about every 10 cron runs if (mt_rand(1, 9) == 4) self::CleanOrphanedFiles(); diff --git a/include/class.dept.php b/include/class.dept.php index 93e1b467388284fc9511ba0477809a56436a6c58..a1a87164f924da3965f1ff77be5e31cbaf4fc4ed 100644 --- a/include/class.dept.php +++ b/include/class.dept.php @@ -62,11 +62,14 @@ implements TemplateVariable, Searchable { var $autorespEmail; const ALERTS_DISABLED = 2; + const DISPLAY_DISABLED = 2; const ALERTS_DEPT_AND_EXTENDED = 1; const ALERTS_DEPT_ONLY = 0; const FLAG_ASSIGN_MEMBERS_ONLY = 0x0001; const FLAG_DISABLE_AUTO_CLAIM = 0x0002; + const FLAG_ACTIVE = 0x0004; + const FLAG_ARCHIVED = 0x0008; function asVar() { return $this->getName(); @@ -144,6 +147,45 @@ implements TemplateVariable, Searchable { return self::getNameById($this->getId()); } + function getStatus() { + if($this->flags & self::FLAG_ACTIVE) + return __('Active'); + elseif($this->flags & self::FLAG_ARCHIVED) + return __('Archived'); + else + return __('Disabled'); + } + + function allowsReopen() { + return !($this->flags & self::FLAG_ARCHIVED); + } + + function isActive() { + return !!($this->flags & self::FLAG_ACTIVE); + } + + function clearInactiveDept($dept_id) { + global $cfg; + + $topics = Topic::objects()->filter(array('dept_id'=>$dept_id))->values_flat('topic_id'); + if ($topics) { + foreach ($topics as $topic_id) { + $topic = Topic::lookup($topic_id[0]); + $topic->dept_id = $cfg->getDefaultDeptId(); + $topic->save(); + } + } + + $emails = Email::objects()->filter(array('dept_id'=>$dept_id))->values_flat('email_id'); + if ($emails) { + foreach ($emails as $email_id) { + $email = Email::lookup($email_id[0]); + $email->dept_id = $cfg->getDefaultDeptId(); + $email->save(); + } + } + } + function getEmailId() { return $this->email_id; } @@ -226,7 +268,7 @@ implements TemplateVariable, Searchable { if (!$member->staff) continue; // Annoted the staff model with alerts and role - $extended[] = new AnnotatedModel($member->staff, array( + $extended[] = AnnotatedModel::wrap($member->staff, array( 'alerts' => $member->isAlertsEnabled(), 'role_id' => $member->role_id, )); @@ -377,6 +419,7 @@ implements TemplateVariable, Searchable { $ht['assign_members_only'] = $this->assignMembersOnly(); $ht['disable_auto_claim'] = $this->disableAutoClaim(); + $ht['status'] = $this->getStatus(); return $ht; } @@ -481,7 +524,7 @@ implements TemplateVariable, Searchable { * */ - private function setFlag($flag, $val) { + public function setFlag($flag, $val) { if ($val) $this->flags |= $flag; @@ -489,6 +532,15 @@ implements TemplateVariable, Searchable { $this->flags &= ~$flag; } + function export($dept, $criteria=null, $filename='') { + include_once(INCLUDE_DIR.'class.error.php'); + $members = $dept->getMembers(); + + //Sort based on name formating + $members = Staff::nsort($members); + Export::departmentMembers($dept, $members, $filename); + } + /*----Static functions-------*/ static function getIdByName($name, $pid=null) { $row = static::objects() @@ -502,7 +554,7 @@ implements TemplateVariable, Searchable { } function getNameById($id) { - $names = static::getDepartments(); + $names = Dept::getDepartments(); return $names[$id]; } @@ -516,8 +568,8 @@ implements TemplateVariable, Searchable { : null; } - static function getDepartments( $criteria=null, $localize=true) { - static $depts = null; + static function getDepartments($criteria=null, $localize=true, $disabled=true) { + $depts = null; if (!isset($depts) || $criteria) { // XXX: This will upset the static $depts array @@ -525,7 +577,7 @@ implements TemplateVariable, Searchable { $query = self::objects(); if (isset($criteria['publiconly'])) $query->filter(array( - 'ispublic' => ($criteria['publiconly'] ? 1 : 0))); + 'flags__hasbit' => Dept::FLAG_ACTIVE)); if ($manager=$criteria['manager']) $query->filter(array( @@ -540,10 +592,14 @@ implements TemplateVariable, Searchable { } $query->order_by('name') - ->values('id', 'pid', 'name', 'parent'); + ->values('id', 'pid', 'flags', 'name', 'parent'); + + foreach ($query as $row) { + $display = ($row['flags'] & self::FLAG_ACTIVE); - foreach ($query as $row) - $depts[$row['id']] = $row; + $depts[$row['id']] = array('id' => $row['id'], 'pid'=>$row['pid'], 'name'=>$row['name'], + 'parent'=>$row['parent'], 'disabled' => !$display); + } $localize_this = function($id, $default) use ($localize) { if (!$localize) @@ -570,21 +626,32 @@ implements TemplateVariable, Searchable { // Fetch local names $names[$id] = $localize_this($id, $name); } - asort($names); - // TODO: Use locale-aware sorting mechanism + // Apply requested filters + $requested_names = array(); + foreach ($names as $id=>$n) { + $info = $depts[$id]; + if (!$disabled && $info['disabled']) + continue; + if ($disabled === self::DISPLAY_DISABLED && $info['disabled']) + $n .= " - ".__("(disabled)"); + $requested_names[$id] = $n; + } + asort($requested_names); + + // TODO: Use locale-aware sorting mechanism if ($criteria) - return $names; + return $requested_names; - $depts = $names; + $depts = $requested_names; } - return $depts; + return $requested_names; } static function getPublicDepartments() { - static $depts =null; + $depts =null; if (!$depts) $depts = self::getDepartments(array('publiconly'=>true)); @@ -636,6 +703,10 @@ implements TemplateVariable, Searchable { if ($vars['pid'] && !($p = static::lookup($vars['pid']))) $errors['pid'] = __('Department selection is required'); + $dept = Dept::lookup($vars['pid']); + if($dept && !$dept->isActive()) + $errors['dept_id'] = sprintf(__('%s selected must be active'), __('Parent Department')); + // Format access update as [array(dept_id, role_id, alerts?)] $access = array(); if (isset($vars['members'])) { @@ -661,10 +732,32 @@ implements TemplateVariable, Searchable { $this->group_membership = $vars['group_membership']; $this->ticket_auto_response = isset($vars['ticket_auto_response'])?$vars['ticket_auto_response']:1; $this->message_auto_response = isset($vars['message_auto_response'])?$vars['message_auto_response']:1; - $this->flags = 0; $this->setFlag(self::FLAG_ASSIGN_MEMBERS_ONLY, isset($vars['assign_members_only'])); $this->setFlag(self::FLAG_DISABLE_AUTO_CLAIM, isset($vars['disable_auto_claim'])); + $filter_actions = FilterAction::objects()->filter(array('type' => 'dept', 'configuration' => '{"dept_id":'. $this->getId().'}')); + if ($filter_actions && $vars['status'] == __('Active')) + FilterAction::setFilterFlag($filter_actions, 'dept', false); + else + FilterAction::setFilterFlag($filter_actions, 'dept', true); + + switch ($vars['status']) { + case __('Active'): + $this->setFlag(self::FLAG_ACTIVE, true); + $this->setFlag(self::FLAG_ARCHIVED, false); + break; + + case __('Disabled'): + $this->setFlag(self::FLAG_ACTIVE, false); + $this->setFlag(self::FLAG_ARCHIVED, false); + break; + + case __('Archived'): + $this->setFlag(self::FLAG_ACTIVE, false); + $this->setFlag(self::FLAG_ARCHIVED, true); + break; + } + $this->path = $this->getFullPath(); $wasnew = $this->__new__; @@ -752,7 +845,7 @@ extends Form { 'default' => 0, 'choices' => array(0 => '— '.__('Top-Level Department').' —') - + Dept::getDepartments() + + Dept::getPublicDepartments() )), 'name' => new TextboxField(array( 'required' => true, diff --git a/include/class.dynamic_forms.php b/include/class.dynamic_forms.php index 174066f8136abd9abf7827f55a69a02afa91396c..c867531d983434cc99f9d7883f485405ce916587 100644 --- a/include/class.dynamic_forms.php +++ b/include/class.dynamic_forms.php @@ -1818,11 +1818,12 @@ class SelectionField extends FormField { function getSearchQ($method, $value, $name=false) { $name = $name ?: $this->get('name'); + $val = '"?'.implode('("|,|$)|"?', array_keys($value)).'("|,|$)'; switch ($method) { case '!includes': - return Q::not(array("{$name}__intersect" => array_keys($value))); + return Q::not(array("{$name}__regex" => $val)); case 'includes': - return new Q(array("{$name}__intersect" => array_keys($value))); + return new Q(array("{$name}__regex" => $val)); default: return parent::getSearchQ($method, $value, $name); } diff --git a/include/class.email.php b/include/class.email.php index a91bebde566cf9709736ffec2b1cfaf4fc579e85..b0dce8bbce91312575695a6b0fcdf070b580d735 100644 --- a/include/class.email.php +++ b/include/class.email.php @@ -264,6 +264,14 @@ class Email extends VerySimpleModel { if(!$vars['name']) $errors['name']=__('Email name required'); + $dept = Dept::lookup($vars['dept_id']); + if($dept && !$dept->isActive()) + $errors['dept_id'] = ''; + + $topic = Topic::lookup($vars['topic_id']); + if($topic && !$topic->isActive()) + $errors['topic_id'] = ''; + if($vars['mail_active'] || ($vars['smtp_active'] && $vars['smtp_auth'])) { if(!$vars['userid']) $errors['userid']=__('Username missing'); diff --git a/include/class.export.php b/include/class.export.php index 1ca9e3f47e1ef84878b89bd9da33c647439336c0..4dcc851b30c3cf5e78106be38f93a87a3ce64aa9 100644 --- a/include/class.export.php +++ b/include/class.export.php @@ -140,7 +140,7 @@ class Export { 'attachment_count' => __('Attachment Count'), ) + $cdata, $how, - array('modify' => function(&$record, $keys) use ($fields) { + array('modify' => function(&$record, $keys, $obj) use ($fields) { foreach ($fields as $k=>$f) { if (($i = array_search($k, $keys)) !== false) { $record[$i] = $f->export($f->to_php($record[$i])); @@ -185,7 +185,7 @@ class Export { '::getEmail' => __('Email'), ) + $cdata, $how, - array('modify' => function(&$record, $keys) use ($fields) { + array('modify' => function(&$record, $keys, $obj) use ($fields) { foreach ($fields as $k=>$f) { if ($f && ($i = array_search($k, $keys)) !== false) { $record[$i] = $f->export($f->to_php($record[$i])); @@ -224,7 +224,7 @@ class Export { 'name' => 'Name', ) + $cdata, $how, - array('modify' => function(&$record, $keys) use ($fields) { + array('modify' => function(&$record, $keys, $obj) use ($fields) { foreach ($fields as $k=>$f) { if ($f && ($i = array_search($k, $keys)) !== false) { $record[$i] = $f->export($f->to_php($record[$i])); @@ -242,6 +242,72 @@ class Export { return false; } + static function agents($agents, $filename='', $how='csv') { + + // Filename or stream to export agents to + $filename = $filename ?: sprintf('Agents-%s.csv', + strftime('%Y%m%d')); + Http::download($filename, "text/$how"); + $depts = Dept::getDepartments(); + echo self::dumpQuery($agents, array( + '::getName' => 'Name', + '::getUsername' => 'Username', + '::getStatus' => 'Status', + 'permissions' => 'Permissions', + '::getDept' => 'Primary Department', + ) + $depts, + $how, + array('modify' => function(&$record, $keys, $obj) use ($depts) { + + if (($i = array_search('permissions', $keys))) + $record[$i] = implode(",", array_keys($obj->getPermission()->getInfo())); + + $roles = $obj->getRoles(); + foreach ($depts as $k => $v) { + if (is_numeric($k) && ($i = array_search($k, $keys)) !== false) { + $record[$i] = $roles[$k] ?: ''; + } + } + return $record; + }) + ); + exit; + + } + +static function departmentMembers($dept, $agents, $filename='', $how='csv') { + $primaryMembers = array(); + foreach ($dept->getPrimaryMembers() as $agent) { + $primaryMembers[] = $agent->getId(); + } + + // Filename or stream to export depts' agents to + $filename = $filename ?: sprintf('%s-%s.csv', $dept->getName(), + strftime('%Y%m%d')); + Http::download($filename, "text/$how"); + echo self::dumpQuery($agents, array( + '::getName' => 'Name', + '::getUsername' => 'Username', + 2 => 'Access Type', + 3 => 'Access Role', + ), + $how, + array('modify' => function(&$record, $keys, $obj) use ($dept, $primaries, $primaryMembers) { + $role = $obj->getRole($dept); + + if (array_search($obj->getId(), $primaryMembers, true) === false) + $type = 'Extended'; + else { + $type = 'Primary'; + } + + $record[2] = $type; + $record[3] = $role->name; + return $record; + }) + ); + exit; + } } class ResultSetExporter { @@ -279,26 +345,32 @@ class ResultSetExporter { $this->_res->next(); $record = array(); - foreach ($this->keys as $field) { list($field, $func) = explode('::', $field); $path = explode('.', $field); + $current = $object; // Evaluate dotted ORM path if ($field) { foreach ($path as $P) { - $current = $current->{$P}; + if (isset($current->{$P})) + $current = $current->{$P}; + else { + $current = $P; + break; + } } } // Evalutate :: function call on target current if ($func && (method_exists($current, $func) || method_exists($current, '__call'))) { $current = $current->{$func}(); } + $record[] = (string) $current; } if (isset($this->options['modify']) && is_callable($this->options['modify'])) - $record = $this->options['modify']($record, $this->keys); + $record = $this->options['modify']($record, $this->keys, $object); return $record; } @@ -325,22 +397,9 @@ class CsvResultsExporter extends ResultSetExporter { if (isset($this->options['delimiter'])) return $this->options['delimiter']; - // Detect delimeter from the current locale settings. For locales - // which use comma (,) as the decimal separator, the semicolon (;) - // should be used as the field separator - $delimiter = ','; - if (!$this->options['delimiter'] && class_exists('NumberFormatter')) { - $nf = NumberFormatter::create(Internationalization::getCurrentLocale(), - NumberFormatter::DECIMAL); - $s = $nf->getSymbol(NumberFormatter::DECIMAL_SEPARATOR_SYMBOL); - if ($s == ',') - $delimiter = ';'; - } - - return $delimiter; + return Internationalization::getCSVDelimiter(); } - function dump() { if (!$this->output) diff --git a/include/class.filter.php b/include/class.filter.php index 29f49d904949b2318dbd4da9d16c6ebed7f1f299..d54bc8fd80a9df8dffaa1cdfc4bd6882f54bf643 100644 --- a/include/class.filter.php +++ b/include/class.filter.php @@ -21,6 +21,9 @@ class Filter { var $id; var $ht; + const FLAG_INACTIVE_HT = 0x0001; + const FLAG_INACTIVE_DEPT = 0x0002; + static $match_types = array( /* @trans */ 'User Information' => array( array('name' => /* @trans */ 'Name', @@ -138,6 +141,17 @@ class Filter { return $this->ht['topic_id']; } + public function setFlag($flag, $val) { + $vars = array(); + $errors = array(); + if ($val) + $this->ht['flags'] |= $flag; + else + $this->ht['flags'] &= ~$flag; + $vars['rules']= $this->getRules(); + $this->update($this->ht, $errors); + } + function stopOnMatch() { return ($this->ht['stop_onmatch']); } @@ -340,7 +354,7 @@ class Filter { } function update($vars,&$errors) { - + $vars['flags'] = $this->ht['flags']; if(!Filter::save($this->getId(),$vars,$errors)) return false; @@ -457,6 +471,21 @@ class Filter { } function save($id,$vars,&$errors) { + if ($this) { + foreach ($this->getActions() as $A) { + if ($A->type == 'dept') + $dept = Dept::lookup($A->parseConfiguration($vars)['dept_id']); + + if ($A->type == 'topic') + $topic = Topic::lookup($A->parseConfiguration($vars)['topic_id']); + } + } + + if($dept && !$dept->isActive()) + $errors['err'] = sprintf(__('%s selected for %s must be active'), __('Department'), __('Filter Action')); + + if($topic && !$topic->isActive()) + $errors['err'] = sprintf(__('%s selected for %s must be active'), __('Help Topic'), __('Filter Action')); if(!$vars['execorder']) $errors['execorder'] = __('Order required'); @@ -487,6 +516,7 @@ class Filter { $sql=' updated=NOW() ' .',isactive='.db_input($vars['isactive']) + .',flags='.db_input($vars['flags']) .',target='.db_input($vars['target']) .',name='.db_input($vars['name']) .',execorder='.db_input($vars['execorder']) @@ -518,6 +548,29 @@ class Filter { return count($errors) == 0; } + function validate_actions($action) { + $errors = array(); + $config = json_decode($action->ht['configuration'], true); + if ($action->ht['type'] == 'dept') { + $dept = Dept::lookup($config['dept_id']); + if (!$dept || !$dept->isActive()) { + $errors['err'] = sprintf(__('Unable to save: Please choose an active %s'), 'Department'); + return $errors; + } + } + + if ($action->ht['type'] == 'topic') { + $topic = Topic::lookup($config['topic_id']); + if (!$topic || !$topic->isActive()) { + $errors['err'] = sprintf(__('Unable to save: Please choose an active %s'), 'Help Topic'); + return $errors; + } + } + + return false; + + } + function save_actions($id, $vars, &$errors) { if (!is_array(@$vars['actions'])) return; @@ -540,11 +593,28 @@ class Filter { 'sort' => (int) $sort, )); $I->setConfiguration($errors, $vars); + $config = json_decode($I->ht['configuration'], true); + + $invalid = self::validate_actions($I); + if ($invalid) { + $errors['err'] = sprintf($invalid['err']); + return; + } + $I->save(); break; - case 'I': # exiting filter action + case 'I': # existing filter action if ($I = FilterAction::lookup($info)) { $I->setConfiguration($errors, $vars); + + $config = json_decode($I->ht['configuration'], true); + + $invalid = self::validate_actions($I); + if ($invalid) { + $errors['err'] = sprintf($invalid['err']); + return; + } + $I->sort = (int) $sort; $I->save(); } diff --git a/include/class.filter_action.php b/include/class.filter_action.php index f5dc14abbc77740d58a368e434603568b6f64fca..c963e355c1ab0905f49d10dcf6926718851a8c71 100644 --- a/include/class.filter_action.php +++ b/include/class.filter_action.php @@ -41,15 +41,28 @@ class FilterAction extends VerySimpleModel { return $this->_config; } - function setConfiguration(&$errors=array(), $source=false) { - $config = array(); - foreach ($this->getImpl()->getConfigurationForm($source ?: $_POST) - ->getFields() as $name=>$field) { - if (!$field->hasData()) - continue; + function parseConfiguration($source, &$errors=array()) + { + if (!$source) + return $this->getConfiguration(); + + $config = array(); + foreach ($this->getImpl()->getConfigurationForm($source) + ->getFields() as $name=>$field) { + if (!$field->hasData()) + continue; + if($field->to_php($field->getClean())) $config[$name] = $field->to_php($field->getClean()); - $errors = array_merge($errors, $field->errors()); - } + else + $config[$name] = $field->getClean(); + + $errors = array_merge($errors, $field->errors()); + } + return $config; + } + + function setConfiguration(&$errors=array(), $source=false) { + $config = $this->parseConfiguration($source ?: $_POST, $errors); if (count($errors) === 0) $this->set('configuration', JsonDataEncoder::encode($config)); return count($errors) === 0; @@ -65,6 +78,16 @@ class FilterAction extends VerySimpleModel { return $this->_impl; } + function setFilterFlag($actions, $flag, $bool) { + foreach ($actions as $action) { + $filter = Filter::lookup($action->filter_id); + if ($filter) { + if ($flag == 'dept') $filter->setFlag(Filter::FLAG_INACTIVE_DEPT, $bool); + if ($flag == 'topic') $filter->setFlag(Filter::FLAG_INACTIVE_HT, $bool); + } + } + } + function apply(&$ticket, array $info) { return $this->getImpl()->apply($ticket, $info); } @@ -273,19 +296,32 @@ class FA_RouteDepartment extends TriggerAction { function apply(&$ticket, array $info) { $config = $this->getConfiguration(); - if ($config['dept_id']) + if ($config['dept_id']) { + $dept = Dept::lookup($config['dept_id']); + + if ($dept->isActive()) $ticket['deptId'] = $config['dept_id']; + } } function getConfigurationOptions() { + $depts = Dept::getDepartments(null, true, false); + + if ($this->action->type == 'dept') { + $dept_id = json_decode($this->action->configuration, true); + $dept = Dept::lookup($dept_id['dept_id']); + if ($dept && !$dept->isActive()) + $depts[$dept->getId()] = $dept->getName(); + } + return array( - 'dept_id' => new ChoiceField(array( + 'dept_id' => new ChoiceField(array( 'configuration' => array( 'prompt' => __('Unchanged'), 'data' => array('quick-add' => 'department'), ), 'choices' => - Dept::getDepartments() + + $depts + array(':new:' => '— '.__('Add New').' —'), 'validators' => function($self, $clean) { if ($clean === ':new:') @@ -406,12 +442,24 @@ class FA_AssignTopic extends TriggerAction { function apply(&$ticket, array $info) { $config = $this->getConfiguration(); - if ($config['topic_id']) + if ($config['topic_id']) { + $topic = Topic::lookup($config['topic_id']); + + if ($topic->isActive()) $ticket['topicId'] = $config['topic_id']; + } } function getConfigurationOptions() { - $choices = Topic::getHelpTopics(false, Topic::DISPLAY_DISABLED); + $choices = Topic::getHelpTopics(false, false); + + if ($this->action->type == 'topic') { + $topic_id = json_decode($this->action->configuration, true); + $topic = Topic::lookup($topic_id['topic_id']); + if ($topic && !$topic->isActive()) + $choices[$topic->getId()] = $topic->getName(); + } + return array( 'topic_id' => new ChoiceField(array( 'configuration' => array('prompt' => __('Unchanged')), diff --git a/include/class.format.php b/include/class.format.php index 0ff1b75e00875da44edb440b79be2b1c6a0b3e3e..50c8a7fdf144c12d23f9f59ff4c1b3dc87cd4609 100644 --- a/include/class.format.php +++ b/include/class.format.php @@ -321,7 +321,7 @@ class Format { 'hook_tag' => function($e, $a=0) { return Format::__html_cleanup($e, $a); }, 'elements' => '*+iframe', 'spec' => - 'iframe=-*,height,width,type,style,src(match="`^(https?:)?//(www\.)?(youtube|dailymotion|vimeo)\.com/`i"),frameborder'.($options['spec'] ? '; '.$options['spec'] : ''), + 'iframe=-*,height,width,type,style,src(match="`^(https?:)?//(www\.)?(youtube|dailymotion|vimeo|player.vimeo)\.com/`i"),frameborder'.($options['spec'] ? '; '.$options['spec'] : '').',allowfullscreen', ); return Format::html($html, $config); @@ -426,7 +426,7 @@ class Format { // Scan for things that look like URLs return preg_replace_callback( '`(?<!>)(((f|ht)tp(s?)://|(?<!//)www\.)([-+~%/.\w]+)(?:[-?#+=&;%@.\w]*)?)' - .'|(\b[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4})`', + .'|(\b[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,63})`', function ($match) { if ($match[1]) { while (in_array(substr($match[1], -1), @@ -739,6 +739,13 @@ class Format { // Thanks, http://stackoverflow.com/a/2955878/1025836 /* static */ function slugify($text) { + // convert special characters to entities + $text = htmlentities($text, ENT_NOQUOTES, 'UTF-8'); + + // removes entity suffixes, leaving only un-accented characters + $text = preg_replace('~&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);~', '$1', $text); + $text = preg_replace('~&([A-za-z]{2})(?:lig);~', '$1', $text); + // replace non letter or digits by - $text = preg_replace('~[^\p{L}\p{N}]+~u', '-', $text); diff --git a/include/class.forms.php b/include/class.forms.php index c94f5bfdea87543bb2930f932b45d8cfec4d53ce..c7e20d3627a45a4ff8551d2aaf20d8c3e67ef27b 100644 --- a/include/class.forms.php +++ b/include/class.forms.php @@ -677,8 +677,8 @@ class FormField { # Validates a user-input into an instance of this field on a dynamic # form if ($this->get('required') && !$value && $this->hasData()) - $this->_errors[] = $this->getLabel() - ? sprintf(__('%s is a required field'), $this->getLabel()) + $this->_errors[] = $this->getLocal('label') + ? sprintf(__('%s is a required field'), $this->getLocal('label')) : __('This is a required field'); # Perform declared validators for the field @@ -1486,6 +1486,39 @@ class TextareaField extends FormField { ); } + function validateEntry($value) { + parent::validateEntry($value); + $config = $this->getConfiguration(); + $validators = array( + '' => null, + 'choices' => array( + function($val) { + $val = str_replace('"', '', JsonDataEncoder::encode($val)); + $regex = "/^(?! )[A-z0-9 _-]+:{1}[A-z0-9 _-]+$/"; + foreach (explode('\r\n', $val) as $v) { + if (!preg_match($regex, $v)) + return false; + } + return true; + }, __('Each choice requires a key and has to be on a new line. (eg. key:value)') + ), + ); + // Support configuration forms, as well as GUI-based form fields + $valid = $this->get('validator'); + if (!$valid) { + $valid = $config['validator']; + } + if (!$value || !isset($validators[$valid])) + return; + $func = $validators[$valid]; + $error = $func[1]; + if ($config['validator-error']) + $error = $this->getLocal('validator-error', $config['validator-error']); + if (is_array($func) && is_callable($func[0])) + if (!call_user_func($func[0], $value)) + $this->_errors[] = $error; + } + function display($value) { $config = $this->getConfiguration(); if ($config['html']) @@ -1655,7 +1688,8 @@ class ChoiceField extends FormField { return array( 'choices' => new TextareaField(array( 'id'=>1, 'label'=>__('Choices'), 'required'=>false, 'default'=>'', - 'hint'=>__('List choices, one per line. To protect against spelling changes, specify key:value names to preserve entries if the list item names change'), + 'hint'=>__('List choices, one per line. To protect against spelling changes, specify key:value names to preserve entries if the list item names change.</br><b>Note:</b> If you have more than two choices, use a List instead.'), + 'validator'=>'choices', 'configuration'=>array('html'=>false) )), 'default' => new TextboxField(array( @@ -1856,11 +1890,12 @@ class ChoiceField extends FormField { function getSearchQ($method, $value, $name=false) { $name = $name ?: $this->get('name'); + $val = '"?'.implode('("|,|$)|"?', array_keys($value)).'("|,|$)'; switch ($method) { case '!includes': - return Q::not(array("{$name}__in" => array_keys($value))); + return Q::not(array("{$name}__regex" => $val)); case 'includes': - return new Q(array("{$name}__in" => array_keys($value))); + return new Q(array("{$name}__regex" => $val)); default: return parent::getSearchQ($method, $value, $name); } @@ -2610,10 +2645,47 @@ class DepartmentField extends ChoiceField { function getChoices($verbose=false) { global $cfg; + $selected = self::getWidget(); + if($selected && $selected->value) { + if(is_array($selected->value)) { + foreach ($selected->value as $k => $v) { + $current_id = $k; + $current_name = $v; + } + } + else { + $current_id = $selected->value; + $current_name = Dept::getNameById($current_id); + $addNew = true; + } + } + + $active_depts = array(); + if($current_id) + $active_depts = Dept::objects() + ->filter(array('flags__hasbit' => Dept::FLAG_ACTIVE)) + ->values('id', 'name'); + $choices = array(); - if (($depts = Dept::getDepartments())) - foreach ($depts as $id => $name) - $choices[$id] = $name; + if ($depts = Dept::getDepartments(null, true, Dept::DISPLAY_DISABLED)) { + //create array w/queryset + $active = array(); + foreach ($active_depts as $dept) + $active[$dept['id']] = $dept['name']; + + //add selected dept to list + $active[$current_id] = $current_name; + + + foreach ($depts as $id => $name) { + $choices[$id] = $name; + if(!array_key_exists($id, $active) && $current_id) + unset($choices[$id]); + } + + } + if($addNew) + $choices[':new:'] = '— '.__('Add New').' —'; return $choices; } @@ -3155,7 +3227,7 @@ class FileUploadField extends FormField { // Check MIME type - file ext. shouldn't be solely trusted. if ($type && $config['__mimetypes'] - && in_array($type, $config['__mimetypes'])) + && in_array($type, $config['__mimetypes'], true)) return true; // Return true if all file types are allowed (.*) @@ -4131,7 +4203,7 @@ class SectionBreakWidget extends Widget { function render($options=array()) { ?><div class="form-header section-break"><h3><?php echo Format::htmlchars($this->field->getLocal('label')); - ?></h3><em><?php echo Format::htmlchars($this->field->getLocal('hint')); + ?></h3><em><?php echo Format::display($this->field->getLocal('hint')); ?></em></div> <?php } diff --git a/include/class.http.php b/include/class.http.php index 2616121c24b130f365f58b2b10f1d1810be118c8..b8205f5c96bc99075b3953b53c11e1ef5cbf97b0 100644 --- a/include/class.http.php +++ b/include/class.http.php @@ -106,6 +106,9 @@ class Http { } function download($filename, $type, $data=null, $disposition='attachment') { + if (strpos($type, 'image/') !== false && preg_match('/image\/.*\+.*/', $type)) + $disposition='attachment'; + header('Pragma: private'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Cache-Control: private', false); diff --git a/include/class.i18n.php b/include/class.i18n.php index 0a08736d76d84cc4e120cd73215a48a161a659f0..0dc60bde0707e682bd2ce4d774fdafbfce88bc4a 100644 --- a/include/class.i18n.php +++ b/include/class.i18n.php @@ -408,6 +408,30 @@ class Internationalization { return $locale; } + static function getCSVDelimiter($locale='') { + + if (!$locale) // Prefer browser settings + $locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']); + + // Detect delimeter from the current locale settings. For locales + // which use comma (,) as the decimal separator, the semicolon (;) + // should be used as the field separator + $delimiter = ','; + if (class_exists('NumberFormatter')) { + $nf = NumberFormatter::create($locale ?: self::getCurrentLocale(), + NumberFormatter::DECIMAL); + $s = $nf->getSymbol(NumberFormatter::DECIMAL_SEPARATOR_SYMBOL); + if ($s == ',') + $delimiter = ';'; + } else { + $info = localeconv(); + if ($info && $info['decimal_point'] == ',') + $delimiter = ';'; + + } + + return $delimiter; + } // getIntDateFormatter($options) // diff --git a/include/class.misc.php b/include/class.misc.php index b5ce887053eba3be836dbc976aa23447c2b8ca80..57c18a8df5f0456bd8cce201c7c003ae52fdcee4 100644 --- a/include/class.misc.php +++ b/include/class.misc.php @@ -52,12 +52,14 @@ class Misc { } /* Helper used to generate ticket IDs */ - function randNumber($len=6,$start=false,$end=false) { - - $start=(!$len && $start)?$start:str_pad(1,$len,"0",STR_PAD_RIGHT); - $end=(!$len && $end)?$end:str_pad(9,$len,"9",STR_PAD_RIGHT); + function randNumber($len=6) { + $number = ''; + for ($i=0; $i<$len; $i++) { + $min = ($i == 0) ? 1 : 0; + $number .= mt_rand($min, 9); + } - return mt_rand($start,$end); + return (int) $number; } /* misc date helpers...this will go away once we move to php 5 */ diff --git a/include/class.nav.php b/include/class.nav.php index 448b3553942ff8e6d0f904556b45f8ec5ada6cce..02abcc028adbbe9ba3f486b149c14c99021e53a3 100644 --- a/include/class.nav.php +++ b/include/class.nav.php @@ -157,24 +157,6 @@ class StaffNav { case 'tasks': $subnav[]=array('desc'=>__('Tasks'), 'href'=>'tasks.php', 'iconclass'=>'Ticket', 'droponly'=>true); break; - case 'tickets': - $subnav[]=array('desc'=>__('Tickets'),'href'=>'tickets.php','iconclass'=>'Ticket', 'droponly'=>true); - if($staff) { - if(($assigned=$staff->getNumAssignedTickets())) - $subnav[]=array('desc'=>__('My Tickets')." ($assigned)", - 'href'=>'tickets.php?status=assigned', - 'iconclass'=>'assignedTickets', - 'droponly'=>true); - - if ($staff->hasPerm(Ticket::PERM_CREATE, false)) - $subnav[]=array('desc'=>__('New Ticket'), - 'title' => __('Open a New Ticket'), - 'href'=>'tickets.php?a=open', - 'iconclass'=>'newTicket', - 'id' => 'new-ticket', - 'droponly'=>true); - } - break; case 'dashboard': $subnav[]=array('desc'=>__('Dashboard'),'href'=>'dashboard.php','iconclass'=>'logs'); $subnav[]=array('desc'=>__('Agent Directory'),'href'=>'directory.php','iconclass'=>'teams'); diff --git a/include/class.organization.php b/include/class.organization.php index f164e663c9981f117e804e0e0b4fe9e6588f2aca..6d9fc030cce92468c63cbe9be2032a95aabef744 100644 --- a/include/class.organization.php +++ b/include/class.organization.php @@ -277,13 +277,16 @@ implements TemplateVariable, Searchable { function getFilterData() { $vars = array(); foreach ($this->getDynamicData() as $entry) { + $vars += $entry->getFilterData(); + + // Add special `name` field in Org form if ($entry->getDynamicForm()->get('type') != 'O') continue; - $vars += $entry->getFilterData(); - // Add special `name` field - $f = $entry->getField('name'); - $vars['field.'.$f->get('id')] = $this->getName(); + + if ($f = $entry->getField('name')) + $vars['field.'.$f->get('id')] = $this->getName(); } + return $vars; } @@ -453,6 +456,12 @@ implements TemplateVariable, Searchable { $u->setPrimaryContact(array_search($u->id, $vars['contacts']) !== false); $u->save(); } + } else { + $members = $this->allMembers(); + $members->update(array( + 'status' => SqlExpression::bitand( + new SqlField('status'), ~User::PRIMARY_ORG_CONTACT) + )); } return $this->save(); diff --git a/include/class.orm.php b/include/class.orm.php index 3e8f9830c55f53d446278a6b7a6709f96e43189f..08c2f209c324ab32f7272435d29e6855abfa3e64 100644 --- a/include/class.orm.php +++ b/include/class.orm.php @@ -2753,8 +2753,10 @@ class MySqlCompiler extends SqlCompiler { } function __range($a, $b) { - // XXX: Crash if $b is not array of two items - return sprintf('%s BETWEEN %s AND %s', $a, $this->input($b[0]), $this->input($b[1])); + return sprintf('%s BETWEEN %s AND %s', + $a, + $b[2] ? $b[0] : $this->input($b[0]), + $b[2] ? $b[1] : $this->input($b[1])); } function compileJoin($tip, $model, $alias, $info, $extra=false) { diff --git a/include/class.ostsession.php b/include/class.ostsession.php index dbb5cf6312551abc4e24e4eb905eca53e0a74188..2c399904195c972b4d3f89739c4639d23edc00e0 100644 --- a/include/class.ostsession.php +++ b/include/class.ostsession.php @@ -53,7 +53,7 @@ class osTicketSession { list($domain) = explode(':', $_SERVER['HTTP_HOST']); session_set_cookie_params($ttl, ROOT_PATH, $domain, - osTicket::is_https()); + osTicket::is_https(), true); if (!defined('SESSION_BACKEND')) define('SESSION_BACKEND', 'db'); @@ -158,6 +158,10 @@ abstract class SessionBackend { return $this->update($id, $i['touched'] ? session_encode() : $data); } + function cleanup() { + $this->gc(0); + } + abstract function read($id); abstract function update($id, $data); abstract function destroy($id); @@ -178,10 +182,17 @@ extends SessionBackend { function read($id) { try { - $this->data = SessionData::objects()->filter([ - 'session_id' => $id, - 'session_expire__gt' => SqlFunction::NOW(), - ])->one(); + $this->data = SessionData::objects() + ->filter(['session_id' => $id]) + ->annotate(array('is_expired' => + new SqlExpr(new Q(array('session_expire__lt' => SqlFunction::NOW()))))) + ->one(); + + if ($this->data->is_expired > 0) { + // session_expire is in the past. Pretend it is expired and + // reset the data. This will assist with CSRF issues + $this->data->session_data=''; + } $this->id = $id; } catch (DoesNotExist $e) { @@ -220,6 +231,10 @@ extends SessionBackend { return SessionData::objects()->filter(['session_id' => $id])->delete(); } + function cleanup() { + self::gc(0); + } + function gc($maxlife){ SessionData::objects()->filter([ 'session_expire__lte' => SqlFunction::NOW() diff --git a/include/class.page.php b/include/class.page.php index c296e9feef025ddc7860c5fb6771d2397f8cdee4..3ea5ca0f98839dc5fcdc4638c5de515b492bc245 100644 --- a/include/class.page.php +++ b/include/class.page.php @@ -57,7 +57,7 @@ class Page extends VerySimpleModel { return $this->name; } function getLocalName($lang=false) { - return $this->getLocal('name', $lang); + return $this->_getLocal('name', $lang); } function getNameAsSlug() { return urlencode(Format::slugify($this->name)); diff --git a/include/class.report.php b/include/class.report.php index d65fd1cc5a63fac47ff221763c104f148fc71c5d..999ae22fe0ac6c6e12a70edbb1bf6fc340f2611c 100644 --- a/include/class.report.php +++ b/include/class.report.php @@ -140,59 +140,69 @@ class OverviewReport { global $thisstaff; list($start, $stop) = $this->getDateRange(); - $times = Ticket::objects() + $times = ThreadEvent::objects() ->constrain(array( 'thread__entries' => array( - 'thread__entries__type' => 'R' - ), - )) - ->aggregate(array( - 'ServiceTime' => SqlAggregate::AVG(SqlFunction::DATEDIFF( - new SqlField('closed'), new SqlField('created') - )), - 'ResponseTime' => SqlAggregate::AVG(SqlFunction::DATEDIFF( - new SqlField('thread__entries__created'), new SqlField('thread__entries__parent__created') - )), - )); - - $stats = Ticket::objects() + 'thread__entries__type' => 'R', + ), + )) ->constrain(array( 'thread__events' => array( - 'thread__events__annulled' => 0, - 'thread__events__timestamp__range' => array($start, $stop), - ), - )) + 'thread__events__state' => 'created', + 'state' => 'closed', + 'annulled' => 0, + ), + )) ->aggregate(array( - 'Opened' => SqlAggregate::COUNT( - SqlCase::N() - ->when(new Q(array('thread__events__state' => 'created')), 1) - ), - 'Assigned' => SqlAggregate::COUNT( - SqlCase::N() - ->when(new Q(array('thread__events__state' => 'assigned')), 1) - ), - 'Overdue' => SqlAggregate::COUNT( - SqlCase::N() - ->when(new Q(array('thread__events__state' => 'overdue')), 1) - ), - 'Closed' => SqlAggregate::COUNT( - SqlCase::N() - ->when(new Q(array('thread__events__state' => 'closed')), 1) - ), - 'Reopened' => SqlAggregate::COUNT( - SqlCase::N() - ->when(new Q(array('thread__events__state' => 'reopened')), 1) + 'ServiceTime' => SqlAggregate::AVG(SqlFunction::timestampdiff( + new SqlCode('HOUR'), new SqlField('thread__events__timestamp'), new SqlField('timestamp')) ), + 'ResponseTime' => SqlAggregate::AVG(SqlFunction::timestampdiff( + new SqlCode('HOUR'),new SqlField('thread__entries__parent__created'), new SqlField('thread__entries__created') + )), )); + $stats = ThreadEvent::objects() + ->filter(array( + 'annulled' => 0, + 'timestamp__range' => array($start, $stop, true), + 'thread__object_type' => 'T', + )) + ->aggregate(array( + 'Opened' => SqlAggregate::COUNT( + SqlCase::N() + ->when(new Q(array('state' => 'created')), 1) + ), + 'Assigned' => SqlAggregate::COUNT( + SqlCase::N() + ->when(new Q(array('state' => 'assigned')), 1) + ), + 'Overdue' => SqlAggregate::COUNT( + SqlCase::N() + ->when(new Q(array('state' => 'overdue')), 1) + ), + 'Closed' => SqlAggregate::COUNT( + SqlCase::N() + ->when(new Q(array('state' => 'closed')), 1) + ), + 'Reopened' => SqlAggregate::COUNT( + SqlCase::N() + ->when(new Q(array('state' => 'reopened')), 1) + ), + 'Deleted' => SqlAggregate::COUNT( + SqlCase::N() + ->when(new Q(array('state' => 'deleted')), 1) + ), + )); + switch ($group) { case 'dept': $headers = array(__('Department')); $header = function($row) { return Dept::getLocalNameById($row['dept_id'], $row['dept__name']); }; - $pk = 'dept_id'; + $pk = 'dept__id'; $stats = $stats ->filter(array('dept_id__in' => $thisstaff->getDepts())) - ->values('dept__id', 'dept__name'); + ->values('dept__id', 'dept__name', 'dept__flags'); $times = $times ->filter(array('dept_id__in' => $thisstaff->getDepts())) ->values('dept__id'); @@ -202,8 +212,8 @@ class OverviewReport { $header = function($row) { return Topic::getLocalNameById($row['topic_id'], $row['topic__topic']); }; $pk = 'topic_id'; $stats = $stats - ->values('topic_id', 'topic__topic') - ->filter(array('topic_id__gt' => 0)); + ->values('topic_id', 'topic__topic', 'topic__flags') + ->filter(array('dept_id__in' => $thisstaff->getDepts(), 'topic_id__gt' => 0)); $times = $times ->values('topic_id') ->filter(array('topic_id__gt' => 0)); @@ -234,18 +244,34 @@ class OverviewReport { foreach ($times as $T) { $timings[$T[$pk]] = $T; } - $rows = array(); foreach ($stats as $R) { + if (isset($R['dept__flags'])) { + if ($R['dept__flags'] & Dept::FLAG_ARCHIVED) + $status = ' - '.__('Archived'); + elseif ($R['dept__flags'] & Dept::FLAG_ACTIVE) + $status = ''; + else + $status = ' - '.__('Disabled'); + } + if (isset($R['topic__flags'])) { + if ($R['topic__flags'] & Topic::FLAG_ARCHIVED) + $status = ' - '.__('Archived'); + elseif ($R['topic__flags'] & Topic::FLAG_ACTIVE) + $status = ''; + else + $status = ' - '.__('Disabled'); + } + $T = $timings[$R[$pk]]; - $rows[] = array($header($R), $R['Opened'], $R['Assigned'], - $R['Overdue'], $R['Closed'], $R['Reopened'], + $rows[] = array($header($R) . $status, $R['Opened'], $R['Assigned'], + $R['Overdue'], $R['Closed'], $R['Reopened'], $R['Deleted'], number_format($T['ServiceTime'], 1), number_format($T['ResponseTime'], 1)); } return array("columns" => array_merge($headers, array(__('Opened'),__('Assigned'),__('Overdue'),__('Closed'),__('Reopened'), - __('Service Time'),__('Response Time'))), + __('Deleted'),__('Service Time'),__('Response Time'))), "data" => $rows); } } diff --git a/include/class.staff.php b/include/class.staff.php index 5a20d35b5b24e7618143a540f9b4883cc986de71..965b7d429910614015045bf49ead08db9e616237 100644 --- a/include/class.staff.php +++ b/include/class.staff.php @@ -449,23 +449,27 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable { return isset($this->locale) ? $this->locale : 0; } - function getRole($dept=null, $useDefault=true) { - $deptId = is_object($dept) ? $dept->getId() : $dept; - if ($deptId && $deptId != $this->dept_id) { - if (isset($this->_roles[$deptId])) - return $this->_roles[$deptId]; + function getRoles() { + if (!isset($this->_roles)) { + $this->_roles = array($this->dept_id => $this->role); + foreach($this->dept_access as $da) + $this->_roles[$da->dept_id] = $da->role; + } - if ($access = $this->dept_access->findFirst(array('dept_id' => $deptId))) - return $this->_roles[$deptId] = $access->role; + return $this->_roles; + } - if (!$useDefault || !$this->usePrimaryRoleOnAssignment()) - // View only access - return new Role(array()); + function getRole($dept=null) { + $deptId = is_object($dept) ? $dept->getId() : $dept; + $roles = $this->getRoles(); + if (isset($roles[$deptId])) + return $roles[$deptId]; - // Fall through to primary role - } - // For the primary department, use the primary role - return $this->role; + if ($this->usePrimaryRoleOnAssignment()) + return $this->role; + + // View only access + return new Role(array()); } function hasPerm($perm, $global=true) { @@ -494,10 +498,14 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable { return TRUE; } - function isactive() { + function isActive() { return $this->isactive; } + function getStatus() { + return $this->isActive() ? __('Active') : __('Locked'); + } + function isVisible() { return $this->isvisible; } @@ -507,7 +515,7 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable { } function isAvailable() { - return ($this->isactive() && !$this->onVacation()); + return ($this->isActive() && !$this->onVacation()); } function showAssignedOnly() { @@ -572,23 +580,6 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable { $this->stats = array(); } - /* returns staff's quick stats - used on nav menu...etc && warnings */ - function getTicketsStats() { - - if(!$this->stats['tickets']) - $this->stats['tickets'] = Ticket::getStaffStats($this); - - return $this->stats['tickets']; - } - - function getNumAssignedTickets() { - return ($stats=$this->getTicketsStats())?$stats['assigned']:0; - } - - function getNumClosedTickets() { - return ($stats=$this->getTicketsStats())?$stats['closed']:0; - } - function getTasksStats() { if (!$this->stats['tasks']) @@ -1039,6 +1030,10 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable { if(!$vars['role_id']) $errors['role_id']=__('Role for primary department is required'); + $dept = Dept::lookup($vars['dept_id']); + if($dept && !$dept->isActive()) + $errors['dept_id'] = sprintf(__('%s selected must be active'), __('Department')); + // Ensure we will still have an administrator with access if ($vars['isadmin'] !== '1' || $vars['islocked'] === '1') { $sql = 'select count(*), max(staff_id) from '.STAFF_TABLE @@ -1174,6 +1169,15 @@ implements AuthenticatedUser, EmailContact, TemplateVariable, Searchable { return true; } + static function export($criteria=null, $filename='') { + include_once(INCLUDE_DIR.'class.error.php'); + + $agents = Staff::objects(); + // Sort based on name formating + $agents = self::nsort($agents); + Export::agents($agents, $filename); + } + } interface RestrictedAccess { diff --git a/include/class.task.php b/include/class.task.php index 7cb0aab791dd552a0c4330d4931477a94c08f8cd..d3a09b9b5bdea2789b762d72fbfb8512f52efca9 100644 --- a/include/class.task.php +++ b/include/class.task.php @@ -1254,6 +1254,8 @@ class Task extends TaskModel implements RestrictedAccess, Threadable { $thisstaff); } + $this->updated = SqlFunction::NOW(); + if ($changes) $this->logEvent('edited', array('fields' => $changes)); @@ -1338,7 +1340,7 @@ class Task extends TaskModel implements RestrictedAccess, Threadable { if (!parent::delete()) return false; - $thread->delete(); + $this->logEvent('deleted'); Draft::deleteForNamespace('task.%.' . $this->getId()); diff --git a/include/class.thread.php b/include/class.thread.php index 99ce210cbba6dfa26ed44b377aa4b6402398440e..069b87c33ed7ec74584d7f1821d3e8120cba6b5c 100644 --- a/include/class.thread.php +++ b/include/class.thread.php @@ -134,7 +134,7 @@ implements Searchable { $collaborators = $this->getCollaborators(); $active = array(); foreach ($collaborators as $c) { - if ($c->isactive()) + if ($c->isActive()) $active[] = $c; } return $active; @@ -360,8 +360,8 @@ implements Searchable { if ($type && is_array($type)) { $visibility = Q::all(array('type__in' => $type)); - if ($type['poster']) { - $visibility->add(array('poster__exact' => $type['poster'])); + if ($type['user_id']) { + $visibility->add(array('user_id' => $type['user_id'])); $visibility->ored = true; } @@ -1837,6 +1837,12 @@ class ThreadEvent extends VerySimpleModel { ), 'null' => true, ), + 'topic' => array( + 'constraint' => array( + 'topic_id' => 'Topic.topic_id', + ), + 'null' => true, + ), ), ); @@ -1895,15 +1901,16 @@ class ThreadEvent extends VerySimpleModel { return $this->template(sprintf( __('%s by {somebody} {timestamp}'), $this->state - )); + ), $mode); } - function template($description) { + function template($description, $mode=self::MODE_STAFF) { global $thisstaff, $cfg; $self = $this; + $hideName = $cfg->hideStaffName(); return preg_replace_callback('/\{(<(?P<type>([^>]+))>)?(?P<key>[^}.]+)(\.(?P<data>[^}]+))?\}/', - function ($m) use ($self, $thisstaff, $cfg) { + function ($m) use ($self, $thisstaff, $cfg, $hideName, $mode) { switch ($m['key']) { case 'assignees': $assignees = array(); @@ -1919,7 +1926,10 @@ class ThreadEvent extends VerySimpleModel { } return implode('/', $assignees); case 'somebody': - $name = $self->getUserName(); + if ($hideName && $self->agent && $mode == self::MODE_CLIENT) + $name = __('Staff'); + else + $name = $self->getUserName(); if ($cfg->isAvatarsEnabled() && ($avatar = $self->getAvatar())) $name = $avatar.$name; @@ -2003,8 +2013,15 @@ class ThreadEvent extends VerySimpleModel { } static function forTicket($ticket, $state, $user=false) { + global $thisstaff; + + if($thisstaff && !$ticket->getStaffId()) + $staff = $thisstaff->getId(); + else + $staff = $ticket->getStaffId(); + $inst = self::create(array( - 'staff_id' => $ticket->getStaffId(), + 'staff_id' => $staff, 'team_id' => $ticket->getTeamId(), 'dept_id' => $ticket->getDeptId(), 'topic_id' => $ticket->getTopicId(), @@ -2012,6 +2029,15 @@ class ThreadEvent extends VerySimpleModel { return $inst; } + static function forTask($task, $state, $user=false) { + $inst = self::create(array( + 'staff_id' => $task->getStaffId(), + 'team_id' => $task->getTeamId(), + 'dept_id' => $task->getDeptId(), + ), $user); + return $inst; + } + function getTypedEvent() { static $subclasses; @@ -2055,8 +2081,8 @@ class ThreadEvents extends InstrumentedList { if ($object instanceof Ticket) // TODO: Use $object->createEvent() (nolint) $event = ThreadEvent::forTicket($object, $state, $user); - else - $event = ThreadEvent::create(false, $user); + elseif ($object instanceof Task) + $event = ThreadEvent::forTask($object, $state, $user); # Annul previous entries if requested (for instance, reopening a # ticket will annul an 'closed' entry). This will be useful to @@ -2153,9 +2179,9 @@ class CloseEvent extends ThreadEvent { function getDescription($mode=self::MODE_STAFF) { if ($this->getData('status')) - return $this->template(__('Closed by <b>{somebody}</b> with status of {<TicketStatus>data.status} {timestamp}')); + return $this->template(__('Closed by <b>{somebody}</b> with status of {<TicketStatus>data.status} {timestamp}'), $mode); else - return $this->template(__('Closed by <b>{somebody}</b> {timestamp}')); + return $this->template(__('Closed by <b>{somebody}</b> {timestamp}'), $mode); } } @@ -2212,7 +2238,7 @@ class CollaboratorEvent extends ThreadEvent { : 'somebody'; break; } - return $this->template($desc); + return $this->template($desc, $mode); } } @@ -2221,7 +2247,7 @@ class CreationEvent extends ThreadEvent { static $state = 'created'; function getDescription($mode=self::MODE_STAFF) { - return $this->template(__('Created by <b>{somebody}</b> {timestamp}')); + return $this->template(__('Created by <b>{somebody}</b> {timestamp}'), $mode); } } @@ -2303,7 +2329,7 @@ class EditEvent extends ThreadEvent { break; } - return $this->template($desc); + return $this->template($desc, $mode); } } @@ -2321,7 +2347,7 @@ class ReopenEvent extends ThreadEvent { static $state = 'reopened'; function getDescription($mode=self::MODE_STAFF) { - return $this->template(__('Reopened by <b>{somebody}</b> {timestamp}')); + return $this->template(__('Reopened by <b>{somebody}</b> {timestamp}'), $mode); } } @@ -2829,6 +2855,7 @@ implements TemplateVariable { $vars['threadId'] = $this->getId(); $vars['userId'] = 0; + $vars['pid'] = $this->getLastMessage()->id; if (!($resp = ResponseThreadEntry::add($vars, $errors))) return $resp; diff --git a/include/class.ticket.php b/include/class.ticket.php index 4b7e455fed6b7162050e841719a5f81e13ee5a88..a6ed0915df61141e13fd89f210f7a69805cf785e 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -207,7 +207,9 @@ implements RestrictedAccess, Threadable, Searchable { } function isReopenable() { - return $this->getStatus()->isReopenable(); + return ($this->getStatus()->isReopenable() + && $this->getDept()->allowsReopen() + && $this->getTopic()->allowsReopen()); } function isClosed() { @@ -220,7 +222,7 @@ implements RestrictedAccess, Threadable, Searchable { return true; $warning = null; - if ($this->getMissingRequiredFields()) { + if (self::getMissingRequiredFields($this)) { $warning = sprintf( __( '%1$s is missing data on %2$s one or more required fields %3$s and cannot be closed'), __('This ticket'), @@ -983,7 +985,9 @@ implements RestrictedAccess, Threadable, Searchable { 'label' => __('Due Date'), 'hint' => $hint, 'configuration' => array( + 'min' => Misc::gmtime(), 'time' => true, + 'gmt' => false, 'future' => true, ) )); @@ -1018,17 +1022,31 @@ implements RestrictedAccess, Threadable, Searchable { } } - function getMissingRequiredFields() { + static function getMissingRequiredFields($ticket) { + // Check for fields disabled by Help Topic + $disabled = array(); + foreach ($ticket->entries as $entry) { + $extra = JsonDataParser::decode($entry->extra); + if (!empty($extra['disable'])) + $disabled[] = $extra['disable']; + } + $disabled = !empty($disabled) ? call_user_func_array('array_merge', $disabled) : NULL; - return $this->getDynamicFields(array( + $criteria = array( 'answers__field__flags__hasbit' => DynamicFormField::FLAG_ENABLED, 'answers__field__flags__hasbit' => DynamicFormField::FLAG_CLOSE_REQUIRED, 'answers__value__isnull' => true, - )); + ); + + // If there are disabled fields then exclude them + if ($disabled) + array_push($criteria, Q::not(array('answers__field__id__in' => $disabled))); + + return $ticket->getDynamicFields($criteria, $ticket); } function getMissingRequiredField() { - $fields = $this->getMissingRequiredFields(); + $fields = self::getMissingRequiredFields($this); return $fields ? $fields[0] : null; } @@ -1962,7 +1980,7 @@ implements RestrictedAccess, Threadable, Searchable { return new FormattedDate($this->getCloseDate()); break; case 'last_update': - return new FormattedDate($this->last_update); + return new FormattedDate($this->lastupdate); case 'user': return $this->getOwner(); default: @@ -3068,7 +3086,7 @@ implements RestrictedAccess, Threadable, Searchable { if (!parent::delete()) return false; - $t->delete(); + $this->logEvent('deleted'); foreach (DynamicFormEntry::forTicket($this->getId()) as $form) $form->delete(); @@ -3144,6 +3162,10 @@ implements RestrictedAccess, Threadable, Searchable { $errors['source'] = sprintf( __('Invalid source given - %s'), Format::htmlchars($vars['source'])); + $topic = Topic::lookup($vars['topicId']); + if($topic && !$topic->isActive()) + $errors['topicId']= sprintf(__('%s selected must be active'), __('Help Topic')); + // Validate dynamic meta-data $forms = DynamicFormEntry::forTicket($this->getId()); foreach ($forms as $form) { @@ -3261,9 +3283,15 @@ implements RestrictedAccess, Threadable, Searchable { // Convert duedate to DB timezone. if ($fid == 'duedate' && ($dt = Format::parseDateTime($val))) { - $dt->setTimezone(new DateTimeZone($cfg->getDbTimezone())); - $val = $dt->format('Y-m-d H:i:s'); + // Make sure the due date is valid + if (Misc::user2gmtime($val) <= Misc::user2gmtime()) + $errors['field']=__('Due date must be in the future'); + else { + $dt->setTimezone(new DateTimeZone($cfg->getDbTimezone())); + $val = $dt->format('Y-m-d H:i:s'); + } } + $changes = array(); $this->{$fid} = $val; foreach ($this->dirty as $F=>$old) { @@ -3346,46 +3374,6 @@ implements RestrictedAccess, Threadable, Searchable { return ($num === 0); } - /* Quick staff's tickets stats */ - function getStaffStats($staff) { - global $cfg; - - /* Unknown or invalid staff */ - if(!$staff || (!is_object($staff) && !($staff=Staff::lookup($staff))) || !$staff->isStaff()) - return null; - - $visibility = $staff->getTicketsVisibility(); - - $blocks = Ticket::objects() - ->filter(Q::any($visibility)) - ->filter(array('status__state' => 'open')) - ->aggregate(array('count' => SqlAggregate::COUNT('ticket_id'))) - ->values('status__state', 'isanswered', 'isoverdue','staff_id', 'team_id'); - - $stats = array(); - $id = $staff->getId(); - foreach ($blocks as $S) { - if ($showanswered || !$S['isanswered']) { - if (!($hideassigned && ($S['staff_id'] || $S['team_id']))) - $stats['open'] += $S['count']; - } - else { - $stats['answered'] += $S['count']; - } - if ($S['isoverdue']) - $stats['overdue'] += $S['count']; - if ($S['staff_id'] == $id) - $stats['assigned'] += $S['count']; - elseif ($S['team_id'] - && $S['staff_id'] == 0 - && $teams - && in_array($S['team_id'], $teams)) - // Assigned to my team but uassigned to an agent - $stats['assigned'] += $S['count']; - } - return $stats; - } - /* Quick client's tickets stats @email - valid email. */ @@ -3744,6 +3732,10 @@ implements RestrictedAccess, Threadable, Searchable { elseif (!isset($vars['teamId']) && $topic->getTeamId()) $vars['teamId'] = $topic->getTeamId(); + // Unset slaId if 0 to use the Help Topic SLA or Default SLA + if ($vars['slaId'] == 0) + unset($vars['slaId']); + //set default sla. if (isset($vars['slaId'])) $vars['slaId'] = $vars['slaId'] ?: $cfg->getDefaultSLAId(); @@ -4033,11 +4025,12 @@ implements RestrictedAccess, Threadable, Searchable { $vars['response'] = $ticket->replaceVars($vars['response']); // $vars['cannedatachments'] contains the attachments placed on // the response form. - $response = $ticket->postReply($vars, $errors, false); + $response = $ticket->postReply($vars, $errors, + !isset($vars['alertuser'])); } // Not assigned...save optional note if any - if (!$vars['assignId'] && $vars['note']) { + if (!$ticket->isAssigned() && $vars['note']) { if (!$cfg->isRichTextEnabled()) { $vars['note'] = new TextThreadEntryBody($vars['note']); } @@ -4055,7 +4048,15 @@ implements RestrictedAccess, Threadable, Searchable { && ($msg=$tpl->getNewTicketNoticeMsgTemplate()) && ($email=$dept->getEmail()) ) { - $message = (string) $ticket->getLastMessage(); + $attachments = array(); + $message = $ticket->getLastMessage(); + if ($cfg->emailAttachments()) { + $attachments = $message->getAttachments(); + if ($response && $response->getNumAttachments()) + $attachments = $attachments->merge($response->getAttachments()); + } + + $message = (string) $message; if ($response) { $message .= ($cfg->isRichTextEnabled()) ? "<br><br>" : "\n\n"; $message .= $response->getBody(); @@ -4068,9 +4069,6 @@ implements RestrictedAccess, Threadable, Searchable { else $signature=''; - $attachments = ($cfg->emailAttachments() && $response) - ? $response->getAttachments() : array(); - $msg = $ticket->replaceVars($msg->asArray(), array( 'message' => $message, diff --git a/include/class.topic.php b/include/class.topic.php index a08ad5c830b3268a04cf6f754c3718f2305a6bba..84a1c9d47d85892d62ef4c44976ade79c33afcee 100644 --- a/include/class.topic.php +++ b/include/class.topic.php @@ -67,6 +67,8 @@ implements TemplateVariable, Searchable { const FORM_USE_PARENT = 4294967295; const FLAG_CUSTOM_NUMBERS = 0x0001; + const FLAG_ACTIVE = 0x0002; + const FLAG_ARCHIVED = 0x0004; const SORT_ALPHA = 'a'; const SORT_MANUAL = 'm'; @@ -136,6 +138,11 @@ implements TemplateVariable, Searchable { return $this->dept_id; } + function getDept() { + + return $this->getDeptId() ? Dept::lookup($this->getDeptId()) : null; + } + function getSLAId() { return $this->sla_id; } @@ -184,30 +191,35 @@ implements TemplateVariable, Searchable { return $this->isActive(); } - /** - * Determine if the help topic is currently enabled. The ancestry of - * this topic will be considered to see if any of the parents are - * disabled. If any are disabled, then this topic will be considered - * disabled. - * - * Parameters: - * $chain - array<id:bool> recusion chain used to detect loops. The - * chain should be maintained and passed to a parent's ::isActive() - * method. When consulting a parent, if the local topic ID is a key - * in the chain, then this topic has already been considered, and - * there is a loop in the ancestry - */ - function isActive(array $chain=array()) { - if (!$this->isactive) - return false; + function isActive() + { + return !!($this->flags & self::FLAG_ACTIVE); + } - if (!isset($chain[$this->getId()]) && ($p = $this->getParent())) { - $chain[$this->getId()] = true; - return $p->isActive($chain); - } - else { - return $this->isactive; + function clearInactiveTopic($topic_id) { + global $cfg; + + $emails = Email::objects()->filter(array('topic_id'=>$topic_id))->values_flat('email_id'); + if ($emails) { + foreach ($emails as $email_id) { + $email = Email::lookup($email_id[0]); + $email->topic_id = $cfg->getDefaultTopicId(); + $email->save(); } + } + } + + function getStatus() { + if($this->flags & self::FLAG_ACTIVE) + return 'Active'; + elseif($this->flags & self::FLAG_ARCHIVED) + return 'Archived'; + else + return 'Disabled'; + } + + function allowsReopen() { + return !($this->flags & self::FLAG_ARCHIVED); } function isPublic() { @@ -221,6 +233,7 @@ implements TemplateVariable, Searchable { function getInfo() { $base = $this->getHashtable(); $base['custom-numbers'] = $this->hasFlag(self::FLAG_CUSTOM_NUMBERS); + $base['status'] = $this->getStatus(); return $base; } @@ -303,75 +316,91 @@ implements TemplateVariable, Searchable { return $topic; } - static function getHelpTopics($publicOnly=false, $disabled=false, $localize=true) { - global $cfg; - static $topics, $names = array(); - - // If localization is specifically requested, then rebuild the list. - if (!$names || $localize) { - $objects = self::objects()->values_flat( - 'topic_id', 'topic_pid', 'ispublic', 'isactive', 'topic' - ) - ->order_by('sort'); - - // Fetch information for all topics, in declared sort order - $topics = array(); - foreach ($objects as $T) { - list($id, $pid, $pub, $act, $topic) = $T; - $topics[$id] = array('pid'=>$pid, 'public'=>$pub, - 'disabled'=>!$act, 'topic'=>$topic); - } - - $localize_this = function($id, $default) use ($localize) { - if (!$localize) - return $default; - - $tag = _H("topic.name.{$id}"); - $T = CustomDataTranslation::translate($tag); - return $T != $tag ? $T : $default; - }; - - // Resolve parent names - foreach ($topics as $id=>$info) { - $name = $localize_this($id, $info['topic']); - $loop = array($id=>true); - $parent = false; - while (($pid = $info['pid']) && ($info = $topics[$info['pid']])) { - $name = sprintf('%s / %s', $localize_this($pid, $info['topic']), - $name); - if ($parent && $parent['disabled']) - // Cascade disabled flag - $topics[$id]['disabled'] = true; - if (isset($loop[$info['pid']])) - break; - $loop[$info['pid']] = true; - $parent = $info; - } - $names[$id] = $name; - } - } - - // Apply requested filters - $requested_names = array(); - foreach ($names as $id=>$n) { - $info = $topics[$id]; - if ($publicOnly && !$info['public']) - continue; - if (!$disabled && $info['disabled']) - continue; - if ($disabled === self::DISPLAY_DISABLED && $info['disabled']) - $n .= " - ".__("(disabled)"); - $requested_names[$id] = $n; - } + /** + * setFlag + * + * Utility method to set/unset flag bits + * + */ + public function setFlag($flag, $val) { - // If localization requested and the current locale is not the - // primary, the list may need to be sorted. Caching is ok here, - // because the locale is not going to be changed within a single - // request. - if ($localize && $cfg->getTopicSortMode() == self::SORT_ALPHA) - return Internationalization::sortKeyedList($requested_names); + if ($val) + $this->flags |= $flag; + else + $this->flags &= ~$flag; + } - return $requested_names; + static function getHelpTopics($publicOnly=false, $disabled=false, $localize=true) { + global $cfg; + static $topics, $names = array(); + + // If localization is specifically requested, then rebuild the list. + if (!$names || $localize) { + $objects = self::objects()->values_flat( + 'topic_id', 'topic_pid', 'ispublic', 'flags', 'topic' + ) + ->order_by('sort'); + + // Fetch information for all topics, in declared sort order + $topics = array(); + foreach ($objects as $T) { + list($id, $pid, $pub, $flags, $topic) = $T; + + $display = ($flags & self::FLAG_ACTIVE); + $topics[$id] = array('pid'=>$pid, 'public'=>$pub, + 'disabled'=>!$display, 'topic'=>$topic); + } + + $localize_this = function($id, $default) use ($localize) { + if (!$localize) + return $default; + + $tag = _H("topic.name.{$id}"); + $T = CustomDataTranslation::translate($tag); + return $T != $tag ? $T : $default; + }; + + // Resolve parent names + foreach ($topics as $id=>$info) { + $name = $localize_this($id, $info['topic']); + $loop = array($id=>true); + $parent = false; + while (($pid = $info['pid']) && ($info = $topics[$info['pid']])) { + $name = sprintf('%s / %s', $localize_this($pid, $info['topic']), + $name); + if ($parent && $parent['disabled']) + // Cascade disabled flag + $topics[$id]['disabled'] = true; + if (isset($loop[$info['pid']])) + break; + $loop[$info['pid']] = true; + $parent = $info; + } + $names[$id] = $name; + } + } + + // Apply requested filters + $requested_names = array(); + foreach ($names as $id=>$n) { + $info = $topics[$id]; + if ($publicOnly && !$info['public']) + continue; + if (!$disabled && $info['disabled']) + continue; + if ($disabled === self::DISPLAY_DISABLED && $info['disabled']) + $n .= " - ".__("(disabled)"); + $requested_names[$id] = $n; + } + + // If localization requested and the current locale is not the + // primary, the list may need to be sorted. Caching is ok here, + // because the locale is not going to be changed within a single + // request. + if ($localize && $cfg->getTopicSortMode() == self::SORT_ALPHA) + return Internationalization::sortKeyedList($requested_names); + + return $requested_names; } static function getPublicHelpTopics() { @@ -413,6 +442,10 @@ implements TemplateVariable, Searchable { && (!isset($this->topic_id) || $tid!=$this->getId())) $errors['topic']=__('Topic already exists'); + $dept = Dept::lookup($vars['dept_id']); + if($dept && !$dept->isActive()) + $errors['dept_id'] = sprintf(__('%s selected must be active'), __('Department')); + if (!is_numeric($vars['dept_id'])) $errors['dept_id']=__('Department selection is required'); @@ -430,14 +463,37 @@ implements TemplateVariable, Searchable { $this->status_id = $vars['status_id'] ?: 0; $this->sla_id = $vars['sla_id'] ?: 0; $this->page_id = $vars['page_id'] ?: 0; - $this->isactive = !!$vars['isactive']; - $this->ispublic = !!$vars['ispublic']; + $this->isactive = $vars['isactive']; + $this->ispublic = $vars['ispublic']; $this->sequence_id = $vars['custom-numbers'] ? $vars['sequence_id'] : 0; $this->number_format = $vars['custom-numbers'] ? $vars['number_format'] : ''; - $this->flags = $vars['custom-numbers'] ? self::FLAG_CUSTOM_NUMBERS : 0; + $this->flags = $vars['custom-numbers'] ? self::FLAG_CUSTOM_NUMBERS : $this->flags; $this->noautoresp = !!$vars['noautoresp']; $this->notes = Format::sanitize($vars['notes']); + $filter_actions = FilterAction::objects()->filter(array('type' => 'topic', 'configuration' => '{"topic_id":'. $this->getId().'}')); + if ($filter_actions && $vars['status'] == __('Active')) + FilterAction::setFilterFlag($filter_actions, 'topic', false); + else + FilterAction::setFilterFlag($filter_actions, 'topic', true); + + switch ($vars['status']) { + case __('Active'): + $this->setFlag(self::FLAG_ACTIVE, true); + $this->setFlag(self::FLAG_ARCHIVED, false); + break; + + case __('Disabled'): + $this->setFlag(self::FLAG_ACTIVE, false); + $this->setFlag(self::FLAG_ARCHIVED, false); + break; + + case __('Archived'): + $this->setFlag(self::FLAG_ACTIVE, false); + $this->setFlag(self::FLAG_ARCHIVED, true); + break; + } + //Auto assign ID is overloaded... if ($vars['assign'] && $vars['assign'][0] == 's') { $this->team_id = 0; diff --git a/include/class.user.php b/include/class.user.php index 4edb3d7a29a0986fa9e66fe782b0f3d6cce21081..dcd04b9c5d59f2bc6c02f4e54c8e928a26c647d5 100644 --- a/include/class.user.php +++ b/include/class.user.php @@ -426,16 +426,19 @@ implements TemplateVariable, Searchable { function getFilterData() { $vars = array(); foreach ($this->getDynamicData() as $entry) { - if ($entry->getDynamicForm()->get('type') != 'U') - continue; $vars += $entry->getFilterData(); + // Add in special `name` and `email` fields + if ($entry->getDynamicForm()->get('type') != 'U') + continue; + foreach (array('name', 'email') as $name) { if ($f = $entry->getField($name)) $vars['field.'.$f->get('id')] = $name == 'name' ? $this->getName() : $this->getEmail(); } } + return $vars; } diff --git a/include/client/faq-category.inc.php b/include/client/faq-category.inc.php index 3ce0b7230dcdff9e3ded235c902b8db55b2f9315..9be22c702280e1d380b343f85eb00dd0acdaba0f 100644 --- a/include/client/faq-category.inc.php +++ b/include/client/faq-category.inc.php @@ -1,14 +1,26 @@ <?php if(!defined('OSTCLIENTINC') || !$category || !$category->isPublic()) die('Access Denied'); ?> - <div class="row"> <div class="span8"> - <h1><?php echo __('Frequently Asked Questions');?></h1> - <h2><strong><?php echo $category->getLocalName() ?></strong></h2> + <h1><?php echo $category->getFullName(); ?></h1> <p> <?php echo Format::safe_html($category->getLocalDescriptionWithImages()); ?> </p> +<?php + +if (($subs=$category->getSubCategories(array('public' => true)))) { + echo '<div>'; + foreach ($subs as $c) { + echo sprintf('<div><i class="icon-folder-open-alt"></i> + <a href="faq.php?cid=%d">%s (%d)</a></div>', + $c->getId(), + $c->getLocalName(), + $c->getNumFAQs() + ); + } + echo '</div>'; +} ?> <hr> <?php $faqs = FAQ::objects() @@ -22,7 +34,7 @@ $faqs = FAQ::objects() if ($faqs->exists(true)) { echo ' - <h2>'.__('Further Articles').'</h2> + <h2>'.__('Frequently Asked Questions').'</h2> <div id="faq"> <ol>'; foreach ($faqs as $F) { @@ -33,7 +45,7 @@ foreach ($faqs as $F) { } echo ' </ol> </div>'; -}else { +} elseif (!$category->children) { echo '<strong>'.__('This category does not have any FAQs.').' <a href="index.php">'.__('Back To Index').'</a></strong>'; } ?> @@ -55,6 +67,7 @@ foreach ($faqs as $F) { <?php foreach (Topic::objects() ->filter(array('faqs__faq__category__category_id'=>$category->getId())) + ->distinct('topic_id') as $t) { ?> <a href="?topicId=<?php echo urlencode($t->getId()); ?>" ><?php echo $t->getFullName(); ?></a> diff --git a/include/client/faq.inc.php b/include/client/faq.inc.php index c904315623347873b911304207d4b505904b768f..9bc723a6e61c4dfbdf9571ce215c8f132e22b0e7 100644 --- a/include/client/faq.inc.php +++ b/include/client/faq.inc.php @@ -7,10 +7,11 @@ $category=$faq->getCategory(); <div class="row"> <div class="span8"> -<h1><?php echo __('Frequently Asked Questions');?></h1> -<div id="breadcrumbs"> +<h1><?php echo __('Frequently Asked Question');?></h1> +<div id="breadcrumbs" style="padding-top:2px;"> <a href="index.php"><?php echo __('All Categories');?></a> - » <a href="faq.php?cid=<?php echo $category->getId(); ?>"><?php echo $category->getName(); ?></a> + » <a href="faq.php?cid=<?php echo $category->getId(); ?>"><?php + echo $category->getFullName(); ?></a> </div> <div class="faq-content"> @@ -18,7 +19,7 @@ $category=$faq->getCategory(); <?php echo $faq->getLocalQuestion() ?> </div> <div class="faded"><?php echo sprintf(__('Last Updated %s'), - Format::relativeTime(Misc::db2gmtime($category->getUpdateDate()))); ?></div> + Format::relativeTime(Misc::db2gmtime($faq->getUpdateDate()))); ?></div> <br/> <div class="thread-body bleed"> <?php echo $faq->getLocalAnswerWithImages(); ?> diff --git a/include/client/footer.inc.php b/include/client/footer.inc.php index 9521fbfc73a61d03735241bf4a6890b98c13b4a0..37369a7d3e131766679266cb346f8bcc83bb9931 100644 --- a/include/client/footer.inc.php +++ b/include/client/footer.inc.php @@ -1,7 +1,7 @@ </div> </div> <div id="footer"> - <p>Copyright © <?php echo date('Y'); ?> <?php echo (string) $ost->company ?: 'osTicket.com'; ?> - All rights reserved.</p> + <p><?php echo __('Copyright ©'); ?> <?php echo date('Y'); ?> <?php echo (string) $ost->company ?: 'osTicket.com'; ?> - <?php echo __('All rights reserved.'); ?></p> <a id="poweredBy" href="http://osticket.com" target="_blank"><?php echo __('Helpdesk software - powered by osTicket'); ?></a> </div> <div id="overlay"></div> diff --git a/include/client/header.inc.php b/include/client/header.inc.php index 2e93d012db87de7f2fa984e12b6110dcef13be4b..30b0273c5d33d8e5d1c410a5af4a1d8c32319d46 100644 --- a/include/client/header.inc.php +++ b/include/client/header.inc.php @@ -42,6 +42,9 @@ if ($lang) { <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/flags.css"> <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/rtl.css"/> <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/select2.min.css"> + <!-- Favicons --> + <link rel="icon" type="image/png" href="<?php echo ROOT_PATH ?>images/oscar-favicon-32x32.png" sizes="32x32" /> + <link rel="icon" type="image/png" href="<?php echo ROOT_PATH ?>images/oscar-favicon-16x16.png" sizes="16x16" /> <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery-1.11.2.min.js"></script> <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery-ui-1.10.3.custom.min.js"></script> <script src="<?php echo ROOT_PATH; ?>js/osticket.js"></script> @@ -115,7 +118,7 @@ if (($all_langs = Internationalization::getConfiguredSystemLanguages()) list($lang, $locale) = explode('_', $code); $qs['lang'] = $code; ?> - <a class="flag flag-<?php echo strtolower($locale ?: $info['flag'] ?: $lang); ?>" + <a class="flag flag-<?php echo strtolower($info['flag'] ?: $locale ?: $lang); ?>" href="?<?php echo http_build_query($qs); ?>" title="<?php echo Internationalization::getLanguageDescription($code); ?>"> </a> <?php } diff --git a/include/client/kb-categories.inc.php b/include/client/kb-categories.inc.php index c4df171c59d466adc540111ee315b4a559499ad6..666ea557d11d8d48a0a6395a37df04f61ffb44a8 100644 --- a/include/client/kb-categories.inc.php +++ b/include/client/kb-categories.inc.php @@ -4,23 +4,64 @@ $categories = Category::objects() ->exclude(Q::any(array( 'ispublic'=>Category::VISIBILITY_PRIVATE, - 'faqs__ispublished'=>FAQ::VISIBILITY_PRIVATE, + Q::all(array( + 'faqs__ispublished'=>FAQ::VISIBILITY_PRIVATE, + 'children__ispublic' => Category::VISIBILITY_PRIVATE, + 'children__faqs__ispublished'=>FAQ::VISIBILITY_PRIVATE, + )) ))) - ->annotate(array('faq_count'=>SqlAggregate::COUNT('faqs'))) - ->filter(array('faq_count__gt'=>0)); + //->annotate(array('faq_count'=>SqlAggregate::COUNT('faqs__ispublished'))); + ->annotate(array('faq_count' => SqlAggregate::COUNT( + SqlCase::N() + ->when(array( + 'faqs__ispublished__gt'=> FAQ::VISIBILITY_PRIVATE), 1) + ->otherwise(null) + ))) + ->annotate(array('children_faq_count' => SqlAggregate::COUNT( + SqlCase::N() + ->when(array( + 'children__faqs__ispublished__gt'=> FAQ::VISIBILITY_PRIVATE), 1) + ->otherwise(null) + ))); + + // ->filter(array('faq_count__gt' => 0)); if ($categories->exists(true)) { ?> <div><?php echo __('Click on the category to browse FAQs.'); ?></div> <ul id="kb"> <?php - foreach ($categories as $C) { ?> + foreach ($categories as $C) { + // Don't show subcategories with parents. + if (($p=$C->parent) + && ($categories->findFirst(array( + 'category_id' => $p->getId())))) + continue; + + $count = $C->faq_count + $C->children_faq_count; + ?> <li><i></i> <div style="margin-left:45px"> - <h4><?php echo sprintf('<a href="faq.php?cid=%d">%s (%d)</a>', - $C->getId(), Format::htmlchars($C->getLocalName()), $C->faq_count); ?></h4> + <h4><?php echo sprintf('<a href="faq.php?cid=%d">%s %s</a>', + $C->getId(), Format::htmlchars($C->getFullName()), + $count ? "({$count})": '' + ); ?></h4> <div class="faded" style="margin:10px 0"> <?php echo Format::safe_html($C->getLocalDescriptionWithImages()); ?> </div> -<?php foreach ($C->faqs +<?php + if (($subs=$C->getPublicSubCategories())) { + echo '<p/><div style="padding-bottom:15px;">'; + foreach ($subs as $c) { + echo sprintf('<div><i class="icon-folder-open"></i> + <a href="faq.php?cid=%d">%s (%d)</a></div>', + $c->getId(), + $c->getLocalName(), + $c->faq_count + ); + } + echo '</div>'; + } + + foreach ($C->faqs ->exclude(array('ispublished'=>FAQ::VISIBILITY_PRIVATE)) ->limit(5) as $F) { ?> <div class="popular-faq"><i class="icon-file-alt"></i> diff --git a/include/client/kb-search.inc.php b/include/client/kb-search.inc.php index a81f5e4fdea5f7064c1f5dacbeb88fab99fb296c..81fd400ee16f22761cc908c8ac7ebe7aec4038b9 100644 --- a/include/client/kb-search.inc.php +++ b/include/client/kb-search.inc.php @@ -45,6 +45,7 @@ foreach (Topic::objects() <div class="header"><?php echo __('Categories'); ?></div> <?php foreach (Category::objects() + ->exclude(Q::any(array('ispublic'=>Category::VISIBILITY_PRIVATE))) ->annotate(array('faqs_count'=>SqlAggregate::count('faqs'))) ->filter(array('faqs_count__gt'=>0)) as $C) { ?> diff --git a/include/client/login.inc.php b/include/client/login.inc.php index d368f5d237d7931d54bdf77f2a93c2697b78854c..77d9b4148aae5cfde70b757d0f2d63a94c2e88e9 100644 --- a/include/client/login.inc.php +++ b/include/client/login.inc.php @@ -8,7 +8,7 @@ $content = Page::lookupByType('banner-client'); if ($content) { list($title, $body) = $ost->replaceTemplateVariables( - array($content->getName(), $content->getBody())); + array($content->getLocalName(), $content->getLocalBody())); } else { $title = __('Sign In'); $body = __('To better serve you, we encourage our clients to register for an account and verify the email address we have on record.'); diff --git a/include/client/open.inc.php b/include/client/open.inc.php index d0f4c24d55bb14a8535221d6ac7fae75ccf79a85..4011d14038391c6fad5e4d291a9f1818de36f736 100644 --- a/include/client/open.inc.php +++ b/include/client/open.inc.php @@ -122,7 +122,7 @@ if ($info['topicId'] && ($topic=Topic::lookup($info['topicId']))) { $('.richtext').each(function() { var redactor = $(this).data('redactor'); if (redactor && redactor.opts.draftDelete) - redactor.deleteDraft(); + redactor.draft.deleteDraft(); }); window.location.href='index.php';"> </p> diff --git a/include/client/templates/thread-entry.tmpl.php b/include/client/templates/thread-entry.tmpl.php index 3ab3127e88d61207cb7d0b970d9a28eb5ce309ed..fed92a5c657b6bba249f6f365cae8462b62c895d 100644 --- a/include/client/templates/thread-entry.tmpl.php +++ b/include/client/templates/thread-entry.tmpl.php @@ -2,7 +2,10 @@ global $cfg; $entryTypes = array('M'=>'message', 'R'=>'response', 'N'=>'note', 'B' => 'bccmessage'); $user = $entry->getUser() ?: $entry->getStaff(); -$name = $user ? $user->getName() : $entry->poster; +if ($entry->staff && $cfg->hideStaffName()) + $name = __('Staff'); +else + $name = $user ? $user->getName() : $entry->poster; $avatar = ''; if ($cfg->isAvatarsEnabled() && $user) $avatar = $user->getAvatar(); diff --git a/include/client/view.inc.php b/include/client/view.inc.php index b368ae25dfce5a70a421237b6bf863bf75550f99..bc39255ab0e02367b43f151e1e1b9a05c5c41bd7 100644 --- a/include/client/view.inc.php +++ b/include/client/view.inc.php @@ -145,9 +145,9 @@ echo $v; <br> <?php $email = $thisclient->getUserName(); - $clientName = TicketUser::lookupByEmail($email)->getName()->name; + $clientId = TicketUser::lookupByEmail($email)->getId(); - $ticket->getThread()->render(array('M', 'R', 'poster' => $clientName), array( + $ticket->getThread()->render(array('M', 'R', 'user_id' => $clientId), array( 'mode' => Thread::MODE_CLIENT, 'html-id' => 'ticketThread') ); @@ -185,7 +185,8 @@ echo $attrs; ?>><?php echo $draft ?: $info['message']; print $attachments->render(array('client'=>true)); } ?> </div> -<?php if ($ticket->isClosed()) { ?> +<?php + if ($ticket->isClosed() && $ticket->isReopenable()) { ?> <div class="warning-banner"> <?php echo __('Ticket will be reopened on message post'); ?> </div> diff --git a/include/i18n/en_US/help/tips/dashboard.dashboard.yaml b/include/i18n/en_US/help/tips/dashboard.dashboard.yaml index 5ce715401b076ef151a2fa5a7cac3bf4aa115a09..1c82c88a2c7d9efb81980a40cd3f9c8f3ea937dc 100644 --- a/include/i18n/en_US/help/tips/dashboard.dashboard.yaml +++ b/include/i18n/en_US/help/tips/dashboard.dashboard.yaml @@ -44,49 +44,48 @@ statistics: opened: title: Opened content: > - This represents the tickets opened by Agents (i.e., internally opened) and - not by Clients. + Tickets that were originally opened having the Department or Help Topic + on the ticket, or the number of tickets an Agent has opened on behalf of a + User. assigned: title: Assigned content: > - The system tracks every event whereby a ticket is automatically or manually - assigned to a particular Department or Agent. Automatic assignments will - depend on established settings for <span class="doc-desc-title">Help - Topics</span> and <span class="doc-desc-title">Email Filters</span> in the - Admin Panel. + Tickets that have been assigned to either an Agent or a Team. The number + reflects tickets that are manually assigned to agents or teams, claimed + tickets, and tickets assigned from ticket filters/other auto-assignment rules. overdue: title: Overdue content: > - This is the amount of tickets that have violated the SLA Plan to which they - belonged. + Tickets that have been marked ‘Overdue’ by the system. Tickets are marked + Overdue when they have violated the SLA Plan to which they belonged, causing + them to have a status of ‘Open’ past their Due Date. closed: title: Closed content: > - This is the amount of tickets that were closed. + The number of Tickets that are currently in the Closed status. reopened: title: Reopened content: > - This is the amount of tickets that were reopened either by an Agent or by a - Client when he/she responded while the ticket was in a Closed status. + The total number of times a ticket was Reopened. Tickets + are reopened whenever their status is changed from Closed to Open. + +deleted: + title: Deleted + content: > + The amount of tickets that have been deleted. service_time: title: Service Time content: > - <span class="doc-desc-title">Service time</span> is the duration of time - that begins at the opening of a ticket and ends when the ticket is closed. - The <span class="doc-desc-title">Service Time</span> column here measures - the average Service Time per ticket, in hours, within the specified date - span. + Refers to the duration of time that begins at the opening of a ticket and ends + when the ticket is closed. The Service Time column measures the average Service + Time per ticket, in hours. response_time: title: Response Time content: > - <span class="doc-desc-title">Response Time</span> is a duration of time - that begins with any Client’s correspondence and ends when an Agent makes a - response. This measurement of time is not exclusive to a Client’s - correspondence of the initial Ticket opening. This refers to every act of - discourse originating with a Client. + Shows an average response time by an Agent, in hours, to ticket correspondence. diff --git a/include/i18n/en_US/help/tips/manage.helptopic.yaml b/include/i18n/en_US/help/tips/manage.helptopic.yaml index 0297f1ceeb93f418b112cdfecbc4213f1ae2cbeb..e13ae5eafbde807b69adbb95af3be74b95b587d2 100644 --- a/include/i18n/en_US/help/tips/manage.helptopic.yaml +++ b/include/i18n/en_US/help/tips/manage.helptopic.yaml @@ -27,7 +27,7 @@ topic: status: title: Status content: > - If disabled, this <span class="doc-desc-title">Help Topic</span> + If disabled or archived, this <span class="doc-desc-title">Help Topic</span> will not be available. type: diff --git a/include/i18n/en_US/help/tips/settings.system.yaml b/include/i18n/en_US/help/tips/settings.system.yaml index 28b069775ba6e2a8b8eafc4c93ae94fc96a002e6..1c2e3786580be78a6a3d5e69a7b2385b1b5afbbe 100644 --- a/include/i18n/en_US/help/tips/settings.system.yaml +++ b/include/i18n/en_US/help/tips/settings.system.yaml @@ -18,8 +18,7 @@ helpdesk_status: content: > If the status is changed to <span class="doc-desc-opt">Offline</span>, the client interface will be - disabled. This does not however affect any normal Agent interaction - with the Agent Panel. + disabled. Only Admins will be able to access the system. helpdesk_url: title: Helpdesk URL diff --git a/include/i18n/en_US/help/tips/staff.department.yaml b/include/i18n/en_US/help/tips/staff.department.yaml index 015c9b1224c3a6a8647e633e3dcb14dd3e2b6f82..aee25f97df04081c04a2639d49d08fb54f9d2ccf 100644 --- a/include/i18n/en_US/help/tips/staff.department.yaml +++ b/include/i18n/en_US/help/tips/staff.department.yaml @@ -13,6 +13,11 @@ # must match the HTML #ids put into the page template. # --- +status: + title: Status + content: > + If disabled or archived, this <span class="doc-desc-title">Department</span> + will not be available. type: title: Type content: > @@ -67,7 +72,7 @@ group_membership: class="doc-desc-title">Alerts & Notices</span>. links: - title: Configure Alerts & Notices - href: /scp/settings.php?t=alerts + href: "/scp/settings.php?t=tickets#alerts" sandboxing: title: Ticket Assignment Restrictions diff --git a/include/i18n/en_US/templates/email/ticket.reply.yaml b/include/i18n/en_US/templates/email/ticket.reply.yaml index 1996f6f73075d11e72f5e8830185e0145bfed8d9..c4d9dd793a38c82f9fedd656135bfa165c67ecd1 100644 --- a/include/i18n/en_US/templates/email/ticket.reply.yaml +++ b/include/i18n/en_US/templates/email/ticket.reply.yaml @@ -12,7 +12,7 @@ notes: | subject: | Re: %{ticket.subject} [#%{ticket.number}] body: | - <h3><strong>Dear %{recipient.name},</strong></h3> + <h3><strong>Dear %{recipient.name.first},</strong></h3> %{response} <br> <br> diff --git a/include/staff/banlist.inc.php b/include/staff/banlist.inc.php index aef6966ccdfd197bac645a2d97f6872213632e97..c95e23bb168858ec88da85432e20c97d031143f7 100644 --- a/include/staff/banlist.inc.php +++ b/include/staff/banlist.inc.php @@ -110,10 +110,10 @@ $query="$select $from $where ORDER BY $order_by LIMIT ".$pageNav->getStart()."," <thead> <tr> <th width="4%"> </th> - <th width="56%"><a <?php echo $email_sort; ?> href="staff.php?<?php echo $qstr; ?>&sort=email"><?php echo __('Email Address');?></a></th> - <th width="10%"><a <?php echo $status_sort; ?> href="staff.php?<?php echo $qstr; ?>&sort=status"><?php echo __('Ban Status');?></a></th> - <th width="10%"><a <?php echo $created_sort; ?> href="staff.php?<?php echo $qstr; ?>&sort=created"><?php echo __('Date Added');?></a></th> - <th width="20%"><a <?php echo $updated_sort; ?> href="staff.php?<?php echo $qstr; ?>&sort=updated"><?php echo __('Last Updated');?></a></th> + <th width="56%"><a <?php echo $email_sort; ?> href="banlist.php?<?php echo $qstr; ?>&sort=email"><?php echo __('Email Address');?></a></th> + <th width="10%"><a <?php echo $status_sort; ?> href="banlist.php?<?php echo $qstr; ?>&sort=status"><?php echo __('Ban Status');?></a></th> + <th width="10%"><a <?php echo $created_sort; ?> href="banlist.php?<?php echo $qstr; ?>&sort=created"><?php echo __('Date Added');?></a></th> + <th width="20%"><a <?php echo $updated_sort; ?> href="banlist.php?<?php echo $qstr; ?>&sort=updated"><?php echo __('Last Updated');?></a></th> </tr> </thead> <tbody> diff --git a/include/staff/cannedresponse.inc.php b/include/staff/cannedresponse.inc.php index 20818d994242254f10fe2c85e5747742e9a944ef..981eef289ab2f340940ba58651efa73338615c89 100644 --- a/include/staff/cannedresponse.inc.php +++ b/include/staff/cannedresponse.inc.php @@ -57,7 +57,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); <select name="dept_id"> <option value="0">— <?php echo __('All Departments');?> —</option> <?php - if (($depts=Dept::getDepartments())) { + if (($depts=Dept::getDepartments(array('publiconly' => true)))) { foreach($depts as $id => $name) { $selected=($info['dept_id'] && $id==$info['dept_id'])?'selected="selected"':''; echo sprintf('<option value="%d" %s>%s</option>',$id,$selected,$name); diff --git a/include/staff/categories.inc.php b/include/staff/categories.inc.php index 91e2419e7b9656cccc68cbe617be67f44eabc357..cbfa58402aeb4a84e5513c68ec9acef03af6f8be 100644 --- a/include/staff/categories.inc.php +++ b/include/staff/categories.inc.php @@ -95,7 +95,7 @@ $pageNav->paginate($categories); <?php echo $sel?'checked="checked"':''; ?>> </td> <td><a class="truncate" style="width:500px" href="categories.php?id=<?php echo $C->getId(); ?>"><?php - echo $C->getLocalName(); ?></a></td> + echo Category::getNamebyId($C->getId()); ?></a></td> <td><?php echo $C->getVisibilityDescription(); ?></td> <td style="text-align:right;padding-right:25px;"><?php echo $faqs; ?></td> <td> <?php echo Format::datetime($C->updated); ?></td> diff --git a/include/staff/category.inc.php b/include/staff/category.inc.php index 4eac204218ad029b49f49945442b41401c20582a..20392a06739ebc02c5fa1cda008cf99a822430c1 100644 --- a/include/staff/category.inc.php +++ b/include/staff/category.inc.php @@ -107,6 +107,24 @@ if (count($langs) > 1) { ?> ?>" id="lang-<?php echo $tag; ?>" <?php if ($i['direction'] == 'rtl') echo 'dir="rtl" class="rtl"'; ?> > + <div style="padding-bottom:8px;"> + <b><?php echo __('Parent');?></b>: + <div class="faded"><?php echo __('Parent Category');?></div> + </div> + <div style="padding-bottom:8px;"> + <select name="pid"> + <option value="">— <?php echo __('Top-Level Category'); ?> —</option> + <?php + foreach (Category::getCategories() as $id=>$name) { + if ($info['id'] && $id == $info['id']) + continue; ?> + <option value="<?php echo $id; ?>" <?php + if ($info['category_pid'] == $id) echo 'selected="selected"'; + ?>><?php echo $name; ?></option> + <?php + } ?> + </select> + </div> <div style="padding-bottom:8px;"> <b><?php echo __('Category Name');?></b>: <span class="error">*</span> diff --git a/include/staff/dashboard.inc.php b/include/staff/dashboard.inc.php index d7b35af5ee0485a9b352ad8e2224d2b3c7c24a07..8bf11959560114bc18514d9d494aa3312e35d8d7 100644 --- a/include/staff/dashboard.inc.php +++ b/include/staff/dashboard.inc.php @@ -67,6 +67,20 @@ $plots = $report->getPlotData(); <hr/> <h2><?php echo __('Statistics'); ?> <i class="help-tip icon-question-sign" href="#statistics"></i></h2> <p><?php echo __('Statistics of tickets organized by department, help topic, and agent.');?></p> +<p><b><?php echo __('Range: '); ?></b> + <?php + $range = array(); + foreach ($report->getDateRange() as $date) + { + $date = str_ireplace('FROM_UNIXTIME(', '',$date); + $date = str_ireplace(')', '',$date); + $date = new DateTime('@'.$date); + if ($thisstaff->getTimezone()) + $date->setTimeZone(new DateTimeZone($thisstaff->getTimezone())); + $range[] = $date->format('F j, Y'); + } + echo __($range[0] . ' - ' . $range[1]); +?> <ul class="clean tabs"> <?php @@ -87,8 +101,52 @@ foreach ($groups as $g=>$desc) { <div class="tab_content <?php echo (!$first) ? 'hidden' : ''; ?>" id="<?php echo Format::slugify($g); ?>"> <table class="dashboard-stats table"><tbody><tr> <?php - foreach ($data['columns'] as $j=>$c) { ?> - <th <?php if ($j === 0) echo 'width="30%" class="flush-left"'; ?>><?php echo Format::htmlchars($c); ?></th> + foreach ($data['columns'] as $j=>$c) { + ?> + <th <?php if ($j === 0) echo 'width="30%" class="flush-left"'; ?>><?php echo Format::htmlchars($c); + switch ($c) { + case 'Opened': + ?> + <i class="help-tip icon-question-sign" href="#opened"></i> + <?php + break; + case 'Assigned': + ?> + <i class="help-tip icon-question-sign" href="#assigned"></i> + <?php + break; + case 'Overdue': + ?> + <i class="help-tip icon-question-sign" href="#overdue"></i> + <?php + break; + case 'Closed': + ?> + <i class="help-tip icon-question-sign" href="#closed"></i> + <?php + break; + case 'Reopened': + ?> + <i class="help-tip icon-question-sign" href="#reopened"></i> + <?php + break; + case 'Deleted': + ?> + <i class="help-tip icon-question-sign" href="#deleted"></i> + <?php + break; + case 'Service Time': + ?> + <i class="help-tip icon-question-sign" href="#service_time"></i> + <?php + break; + case 'Response Time': + ?> + <i class="help-tip icon-question-sign" href="#response_time"></i> + <?php + break; + } + ?></th> <?php } ?> </tr></tbody> diff --git a/include/staff/department.inc.php b/include/staff/department.inc.php index 2ea8825e35c787bdcba95078a23e50f8e46f1192..4352badf30eb6e2dc3647712795d335a65c874f5 100644 --- a/include/staff/department.inc.php +++ b/include/staff/department.inc.php @@ -59,14 +59,27 @@ $info = Format::htmlchars(($errors && $_POST) ? $_POST : $info); <td> <select name="pid"> <option value="">— <?php echo __('Top-Level Department'); ?> —</option> -<?php foreach (Dept::getDepartments() as $id=>$name) { - if ($info['id'] && $id == $info['id']) - continue; ?> - <option value="<?php echo $id; ?>" <?php - if ($info['pid'] == $id) echo 'selected="selected"'; - ?>><?php echo $name; ?></option> -<?php } ?> - </select> + <?php + if($info['pid']) + $current_name = Dept::getNameById($info['pid']); + if ($depts=Dept::getPublicDepartments()) + { + if(!array_key_exists($info['pid'], $depts) && $info['pid']) + { + $depts[$info['pid']] = $current_name; + $warn = sprintf(__('%s selected must be active'), __('Parent Department')); + } + foreach ($depts as $id=>$name) { + $selected=($info['pid'] && $id==$info['pid'])?'selected="selected"':''; + echo sprintf('<option value="%d" %s>%s</option>',$id,$selected,$name); + } + } + ?> + </select> + <?php + if($warn) { ?> + <span class="error">* <?php echo $warn; ?></span> + <?php } ?> </td> </tr> <tr> @@ -80,6 +93,19 @@ $info = Format::htmlchars(($errors && $_POST) ? $_POST : $info); <span class="error">* <?php echo $errors['name']; ?></span> </td> </tr> + <tr> + <td width="180" class="required"> + <?php echo __('Status');?>: + </td> + <td> + <select name="status"> + <option value="Active"<?php echo ($info['status'] == __('Active'))?'selected="selected"':'';?>><?php echo __('Active'); ?></option> + <option value="Disabled"<?php echo ($info['status'] == __('Disabled'))?'selected="selected"':'';?>><?php echo __('Disabled'); ?></option> + <option value="Archived"<?php echo ($info['status'] == __('Archived'))?'selected="selected"':'';?>><?php echo __('Archived'); ?></option> + </select> + <span class="error"> </span> <i class="help-tip icon-question-sign" href="#status"></i> + </td> + </tr> <tr> <td width="180" class="required"> <?php echo __('Type');?>: @@ -93,6 +119,7 @@ $info = Format::htmlchars(($errors && $_POST) ? $_POST : $info); <input type="radio" name="ispublic" value="0" <?php echo !$info['ispublic']?'checked="checked"':''; ?>><strong><?php echo __('Private');?></strong> <?php echo mb_convert_case(__('(internal)'), MB_CASE_TITLE);?> </label> <i class="help-tip icon-question-sign" href="#type"></i> + <span class="error"><?php echo $errors['ispublic']; ?></span> </td> </tr> <tr> @@ -325,7 +352,17 @@ $info = Format::htmlchars(($errors && $_POST) ? $_POST : $info); <?php echo sprintf(__('Agents who are primary members of %s'), __('this department')); ?> </small></div> </td> - </tr> + <td> + <?php + echo sprintf( + '<a class="no-pjax" href="departments.php?id=%d&a=export"</a>', + $dept->getId()); + ?> + <span class="action-button pull-right" data-placement="bottom" data-toggle="tooltip" title="<?php echo __('Export');?>"> + <i class="icon-download-alt icon-fixed-width"></i> + </span> + </td> + </tr> <?php if (!count($dept->members)) { ?> <tr><td colspan=2><em><?php diff --git a/include/staff/departments.inc.php b/include/staff/departments.inc.php index 2924eea68f11acb94209187472eef9b1892c03e6..4fd4a34c9fe0870e6c006886bd5a23d88e68d5ec 100644 --- a/include/staff/departments.inc.php +++ b/include/staff/departments.inc.php @@ -5,6 +5,7 @@ if (!defined('OSTADMININC') || !$thisstaff->isAdmin()) $qs = array(); $sortOptions=array( 'name' => 'name', + 'status' => 'flags', 'type' => 'ispublic', 'members'=> 'members_count', 'email'=> 'email__name', @@ -53,9 +54,28 @@ $showing = $pageNav->showing().' '._N('department', 'departments', $count); </span> <div id="action-dropdown-more" class="action-dropdown anchor-right"> <ul id="actions"> + <li> + <a class="confirm" data-name="enable" href="departments.php?a=enable"> + <i class="icon-ok-sign icon-fixed-width"></i> + <?php echo __( 'Enable'); ?> + </a> + </li> + <li> + <a class="confirm" data-name="disable" href="departments.php?a=disable"> + <i class="icon-ban-circle icon-fixed-width"></i> + <?php echo __( 'Disable'); ?> + </a> + </li> + <li> + <a class="confirm" data-name="archive" href="departments.php?a=archive"> + <i class="icon-folder-close icon-fixed-width"></i> + <?php echo __( 'Archive'); ?> + </a> + </li> <li class="danger"><a class="confirm" data-name="delete" href="departments.php?a=delete"> <i class="icon-trash icon-fixed-width"></i> - <?php echo __('Delete'); ?></a></li> + <?php echo __('Delete'); ?></a> + </li> </ul> </div> </div> @@ -70,8 +90,11 @@ $showing = $pageNav->showing().' '._N('department', 'departments', $count); <tr> <th width="4%"> </th> <th width="28%"><a <?php echo $name_sort; ?> href="departments.php?<?php echo $qstr; ?>&sort=name"><?php echo __('Name');?></a></th> + <th width="8%"><a <?php echo $status_sort; ?> href="departments.php?<?php echo $qstr;?>&sort=status"><?php echo __('Status');?></a></th> + <!-- <th style="padding-left:4px;vertical-align:middle" width="8%"><?php echo __('Status'); ?></th> --> <th width="8%"><a <?php echo $type_sort; ?> href="departments.php?<?php echo $qstr; ?>&sort=type"><?php echo __('Type');?></a></th> - <th width="8%"><a <?php echo $users_sort; ?>href="departments.php?<?php echo $qstr; ?>&sort=users"><?php echo __('Agents');?></a></th> + <!-- <th width="8%"><a <?php echo $users_sort; ?>href="departments.php?<?php echo $qstr; ?>&sort=users"><?php echo __('Agents');?></a></th> --> + <th width="8%"><a <?php echo $users_sort; ?>href="departments.php?<?php echo $qstr; ?>&sort=members"><?php echo __('Agents');?></a></th> <th width="30%"><a <?php echo $email_sort; ?> href="departments.php?<?php echo $qstr; ?>&sort=email"><?php echo __('Email Address');?></a></th> <th width="22%"><a <?php echo $manager_sort; ?> href="departments.php?<?php echo $qstr; ?>&sort=manager"><?php echo __('Manager');?></a></th> </tr> @@ -115,8 +138,17 @@ $showing = $pageNav->showing().' '._N('department', 'departments', $count); <?php echo $sel? 'checked="checked"' : ''; ?> <?php echo $default? 'disabled="disabled"' : ''; ?> > </td> - <td><a href="departments.php?id=<?php echo $id; ?>"><?php - echo Dept::getNameById($id); ?></a> <?php echo $default; ?></td> + <td> + <a href="departments.php?id=<?php echo $id; ?>"><?php + echo Dept::getNameById($id); ?></a> <?php echo $default; ?> + </td> + <td><?php + if($dept->getStatus() == __('Active')) + echo $dept->getStatus(); + else + echo '<b>'.$dept->getStatus(); + ?> + </td> <td><?php echo $dept->isPublic() ? __('Public') :'<b>'.__('Private').'</b>'; ?></td> <td> <b> @@ -136,7 +168,7 @@ $showing = $pageNav->showing().' '._N('department', 'departments', $count); } ?> <tfoot> <tr> - <td colspan="6"> + <td colspan="7"> <?php if ($count) { ?> <?php echo __('Select');?>: @@ -170,6 +202,18 @@ endif; <?php echo sprintf(__('Are you sure you want to make %s <b>private</b> (internal)?'), _N('selected department', 'selected departments', 2));?> </p> + <p class="confirm-action" style="display:none;" id="enable-confirm"> + <?php echo sprintf(__('Are you sure you want to <b>enable</b> %s?'), + _N('selected department', 'selected departments', 2));?> + </p> + <p class="confirm-action" style="display:none;" id="disable-confirm"> + <?php echo sprintf(__('Are you sure you want to <b>disable</b> %s?'), + _N('selected department', 'selected departments', 2));?> + </p> + <p class="confirm-action" style="display:none;" id="archive-confirm"> + <?php echo sprintf(__('Are you sure you want to <b>archive</b> %s?'), + _N('selected department', 'selected departments', 2));?> + </p> <p class="confirm-action" style="display:none;" id="delete-confirm"> <font color="red"><strong><?php echo sprintf(__('Are you sure you want to DELETE %s?'), _N('selected department', 'selected departments', 2));?></strong></font> diff --git a/include/staff/directory.inc.php b/include/staff/directory.inc.php index 9eb4926dd6825ace920ad39536e8521ae422102f..a604acc184eccf823766b96646f932eed72d5375 100644 --- a/include/staff/directory.inc.php +++ b/include/staff/directory.inc.php @@ -5,6 +5,10 @@ $qs = array(); $agents = Staff::objects() ->select_related('dept'); +// Sanitize 'order' param To Escape XSS +if ($_REQUEST['order']) + $_REQUEST['order'] = Format::sanitize($_REQUEST['order']); + if($_REQUEST['q']) { $searchTerm=$_REQUEST['q']; if($searchTerm){ diff --git a/include/staff/email.inc.php b/include/staff/email.inc.php index 3653f06a7949bacc7d92d1b32a911c075abe07c0..9633acff690ca42c5aa378ea589e69460017f861 100644 --- a/include/staff/email.inc.php +++ b/include/staff/email.inc.php @@ -87,7 +87,13 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); <option value="0" selected="selected">— <?php echo __('System Default'); ?> —</option> <?php - if (($depts=Dept::getDepartments())) { + if ($depts=Dept::getPublicDepartments()) { + if($info['dept_id'] && !array_key_exists($info['dept_id'], $depts)) + { + $depts[$info['dept_id']] = $email->dept; + $warn = sprintf(__('%s selected must be active'), __('Department')); + } + foreach ($depts as $id => $name) { $selected=($info['dept_id'] && $id==$info['dept_id'])?'selected="selected"':''; echo sprintf('<option value="%d" %s>%s</option>',$id,$selected,$name); @@ -95,9 +101,12 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); } ?> </select> + <?php + if($warn) { ?> + <span class="error">* <?php echo $warn; ?></span> + <?php } ?> <i class="help-tip icon-question-sign" href="#new_ticket_department"></i> </span> - <span class="error"><?php echo $errors['dept_id']; ?></span> </td> </tr> <tr> @@ -133,12 +142,21 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); <select name="topic_id"> <option value="0" selected="selected">— <?php echo __('System Default'); ?> —</option> <?php + $warn = ''; $topics = Topic::getHelpTopics(); + if($info['topic_id'] && !array_key_exists($info['topic_id'], $topics)) { + $topics[$info['topic_id']] = $email->topic; + $warn = sprintf(__('%s selected must be active'), __('Help Topic')); + } while (list($id,$topic) = each($topics)) { ?> <option value="<?php echo $id; ?>"<?php echo ($info['topic_id']==$id)?'selected':''; ?>><?php echo $topic; ?></option> <?php } ?> </select> + <?php + if($warn) { ?> + <span class="error">* <?php echo $warn; ?></span> + <?php } ?> <i class="help-tip icon-question-sign" href="#new_ticket_help_topic"></i> </span> <span class="error"> diff --git a/include/staff/faq-categories.inc.php b/include/staff/faq-categories.inc.php index 4c484822751eeb0a6b8e3f5ad8ce59562ad523b6..a845b37f9ff4d35db6a3542464804ab940fae1ce 100644 --- a/include/staff/faq-categories.inc.php +++ b/include/staff/faq-categories.inc.php @@ -55,7 +55,7 @@ foreach ($categories as $C) { <i class="icon-fixed-width <?php if ($active) echo 'icon-hand-right'; ?>"></i> <?php echo sprintf('%s (%d)', - Format::htmlchars($C->getLocalName()), + Format::htmlchars($C->getFullName()), $C->faq_count); ?></a> </li> <?php } ?> @@ -140,7 +140,9 @@ if($_REQUEST['q'] || $_REQUEST['cid'] || $_REQUEST['topicId']) { //Search. } } else { //Category Listing. $categories = Category::objects() - ->annotate(array('faq_count'=>SqlAggregate::COUNT('faqs'))); + ->annotate(array('faq_count'=>SqlAggregate::COUNT('faqs'))) + ->filter(array('category_pid__isnull' => true)); + if (count($categories)) { $categories->sort(function($a) { return $a->getLocalName(); }); @@ -150,11 +152,25 @@ if($_REQUEST['q'] || $_REQUEST['cid'] || $_REQUEST['topicId']) { //Search. echo sprintf(' <li> <h4><a class="truncate" style="max-width:600px" href="kb.php?cid=%d">%s (%d)</a> - <span>%s</span></h4> - %s - </li>',$C->getId(),$C->getLocalName(),$C->faq_count, + %s ', + $C->getId(),$C->getLocalName(),$C->getNumFAQs(), $C->getVisibilityDescription(), Format::safe_html($C->getLocalDescriptionWithImages()) - ); + ); + if ($C->children) { + echo '<p/><div>'; + foreach ($C->children as $c) { + echo sprintf('<div><i class="icon-folder-open-alt"></i> + <a href="kb.php?cid=%d">%s (%d)</a> - <span>%s</span></div>', + $c->getId(), + $c->getLocalName(), + $c->getNumFAQs(), + $c->getVisibilityDescription() + ); + } + echo '</div>'; + } + echo '</li>'; } echo '</ul>'; } else { diff --git a/include/staff/faq-category.inc.php b/include/staff/faq-category.inc.php index 0dcff184f204a3716f9c86c33cde294696b46341..36bedc6d930c6bd7626f68eb35ab8a1be12cc517 100644 --- a/include/staff/faq-category.inc.php +++ b/include/staff/faq-category.inc.php @@ -36,13 +36,27 @@ echo sprintf('<div class="pull-right flush-right"> </div> <div class="faq-category"> <div style="margin-bottom:10px;"> - <div class="faq-title pull-left"><?php echo $category->getName() ?></div> + <div class="faq-title pull-left"><?php echo $category->getFullName() ?></div> <div class="faq-status inline">(<?php echo $category->isPublic()?__('Public'):__('Internal'); ?>)</div> <div class="clear"><time class="faq"> <?php echo __('Last Updated').' '. Format::daydatetime($category->getUpdateDate()); ?></time></div> </div> <div class="cat-desc has_bottom_border"> - <?php echo Format::display($category->getDescription()); ?> -</div> + <?php echo Format::display($category->getDescription()); + if ($category->children) { + echo '<p/><div>'; + foreach ($category->children as $c) { + echo sprintf('<div><i class="icon-folder-open-alt"></i> + <a href="kb.php?cid=%d">%s (%d)</a> - <span>%s</span></div>', + $c->getId(), + $c->getLocalName(), + $c->getNumFAQs(), + $c->getVisibilityDescription() + ); + } + echo '</div>'; + } + ?> + </div> <?php @@ -61,7 +75,7 @@ if ($faqs->exists(true)) { } echo ' </ol> </div>'; -}else { +} elseif (!$category->children) { echo '<strong>'.__('Category does not have FAQs').'</strong>'; } ?> diff --git a/include/staff/faq-view.inc.php b/include/staff/faq-view.inc.php index 9f46a499478cf3ddc0c0da0459ce5e26ec447eb4..a5dc4e56010c41ca059d7701d1bd19345c533661 100644 --- a/include/staff/faq-view.inc.php +++ b/include/staff/faq-view.inc.php @@ -29,7 +29,8 @@ if ($thisstaff->hasPerm(FAQ::PERM_MANAGE)) { ?> <div id="breadcrumbs"> <a href="kb.php"><?php echo __('All Categories');?></a> - » <a href="kb.php?cid=<?php echo $category->getId(); ?>"><?php echo $category->getName(); ?></a> + » <a href="kb.php?cid=<?php echo $category->getId(); ?>"><?php + echo $category->getFullName(); ?></a> <span class="faded">(<?php echo $category->isPublic()?__('Public'):__('Internal'); ?>)</span> </div> diff --git a/include/staff/faq.inc.php b/include/staff/faq.inc.php index 4579deb8d34ca38484835ec6bb33d178721ddbda..830dc4645516ae229816e3a22c455369c3b02e95 100644 --- a/include/staff/faq.inc.php +++ b/include/staff/faq.inc.php @@ -63,7 +63,7 @@ $qstr = Http::build_query($qs); <option value="<?php echo $C->getId(); ?>" <?php if ($C->getId() == $info['category_id']) echo 'selected="selected"'; ?>><?php echo sprintf('%s (%s)', - $C->getName(), + Category::getNameById($C->getId()), $C->isPublic() ? __('Public') : __('Private') ); ?></option> <?php } ?> diff --git a/include/staff/filter.inc.php b/include/staff/filter.inc.php index 2330fc47dc4ebeece8aa04e8365c71bb30bfb186..ba0c06ce58ccdd35b8dadcdc9001362477da7b83 100644 --- a/include/staff/filter.inc.php +++ b/include/staff/filter.inc.php @@ -238,7 +238,23 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); <?php $existing = array(); if ($filter) { foreach ($filter->getActions() as $A) { + $_warn = ''; $existing[] = $A->type; + if($A->type == 'dept') { + $errors['topic_id'] = ''; + // $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); + $dept_config = $A->parseConfiguration($_POST); + $dept = Dept::lookup($dept_config['dept_id']); + if($dept && !$dept->isActive()) + $_warn = sprintf(__('%s must be active'), __('Department')); + } + elseif($A->type == 'topic') { + $errors['dept_id'] = ''; + $topic_config = $A->parseConfiguration($_POST); + $topic = Topic::lookup($topic_config['topic_id']); + if($topic && !$topic->isActive()) + $_warn = sprintf(__('%s must be active'), __('Help Topic')); + } ?> <tr style="background-color:white"><td><i class="icon-sort icon-large icon-muted"></i> <?php echo $A->getImpl()->getName(); ?>:</td> @@ -248,7 +264,9 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); // XXX: Drop this when the ORM supports proper caching $form->isValid(); include STAFFINC_DIR . 'templates/dynamic-form-simple.tmpl.php'; - ?> + if($_warn) { + ?> <span class="error">* <?php echo $_warn; ?></span> + <?php } ?> <input type="hidden" name="actions[]" value="I<?php echo $A->getId(); ?>"/> <div class="pull-right" style="position:absolute;top:2px;right:2px;"> <a href="#" title="<?php echo __('clear'); ?>" onclick="javascript: diff --git a/include/staff/filters.inc.php b/include/staff/filters.inc.php index 6eb7f32310c965fbcb3f013a1666c6fbb99c3d43..7da5b73d318a285120c2f951300af495f19eaf1d 100644 --- a/include/staff/filters.inc.php +++ b/include/staff/filters.inc.php @@ -2,9 +2,11 @@ if(!defined('OSTADMININC') || !$thisstaff->isAdmin()) die('Access Denied'); $targets = Filter::getTargets(); $qs = array(); -$sql='SELECT filter.*,count(rule.id) as rules '. +$sql='SELECT filter.*,count(rule.id) as rules, topic.configuration AS topic, dept.configuration AS dept '. 'FROM '.FILTER_TABLE.' filter '. 'LEFT JOIN '.FILTER_RULE_TABLE.' rule ON(rule.filter_id=filter.id) '. + 'LEFT JOIN '.FILTER_ACTION_TABLE.' topic ON (topic.filter_id = filter.id AND topic.type = \'topic\') '. + 'LEFT JOIN '.FILTER_ACTION_TABLE.' dept ON (dept.filter_id = filter.id AND dept.type = \'dept\') '. "WHERE filter.`name` <> 'SYSTEM BAN LIST' ". 'GROUP BY filter.id'; $sortOptions=array('name'=>'filter.name','status'=>'filter.isactive','order'=>'filter.execorder','rules'=>'rules', @@ -113,7 +115,17 @@ else <input type="checkbox" class="ckb" name="ids[]" value="<?php echo $row['id']; ?>" <?php echo $sel?'checked="checked"':''; ?>> </td> - <td> <a href="filters.php?id=<?php echo $row['id']; ?>"><?php echo Format::htmlchars($row['name']); ?></a></td> + <td> <a href="filters.php?id=<?php echo $row['id']; ?>"><?php echo Format::htmlchars($row['name']); ?></a> + <?php + if ($row['flags'] & Filter::FLAG_INACTIVE_DEPT) + echo '<a data-placement="bottom" data-toggle="tooltip" title="Inactive Department Selected" + <i class="pull-right icon-warning-sign"></a>'; + + if ($row['flags'] & Filter::FLAG_INACTIVE_HT) + echo '<a data-placement="bottom" data-toggle="tooltip" title="Inactive Help Topic Selected" + <i class="pull-right icon-warning-sign"></a>'; + ?> + </td> <td><?php echo $row['isactive']?__('Active'):'<b>'.__('Disabled').'</b>'; ?></td> <td style="text-align:right;padding-right:25px;"><?php echo $row['execorder']; ?> </td> <td style="text-align:right;padding-right:25px;"><?php echo $row['rules']; ?> </td> diff --git a/include/staff/footer.inc.php b/include/staff/footer.inc.php index 65efa328211a3b7e4e769649cd105f80d54f957a..8ab46960a950cf9d116ff66db72b0b72846663fe 100644 --- a/include/staff/footer.inc.php +++ b/include/staff/footer.inc.php @@ -2,7 +2,7 @@ </div> <?php if (!isset($_SERVER['HTTP_X_PJAX'])) { ?> <div id="footer"> - Copyright © 2006-<?php echo date('Y'); ?> <?php echo (string) $ost->company ?: 'osTicket.com'; ?> All Rights Reserved. + <?php echo __('Copyright ©') ?> 2006-<?php echo date('Y'); ?> <?php echo (string) $ost->company ?: 'osTicket.com'; ?> <?php echo __('All Rights Reserved.'); ?> </div> <?php if(is_object($thisstaff) && $thisstaff->isStaff()) { ?> diff --git a/include/staff/header.inc.php b/include/staff/header.inc.php index 3bc47d876ea4b507f9621d5276f5790c4eebc410..14616767106caf353267573395e970da9de5f4e5 100644 --- a/include/staff/header.inc.php +++ b/include/staff/header.inc.php @@ -44,6 +44,9 @@ if ($lang) { <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/select2.min.css"> <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH; ?>css/rtl.css"/> <link type="text/css" rel="stylesheet" href="<?php echo ROOT_PATH ?>scp/css/translatable.css"/> + <!-- Favicons --> + <link rel="icon" type="image/png" href="<?php echo ROOT_PATH ?>images/oscar-favicon-32x32.png" sizes="32x32" /> + <link rel="icon" type="image/png" href="<?php echo ROOT_PATH ?>images/oscar-favicon-16x16.png" sizes="16x16" /> <?php if($ost && ($headers=$ost->getExtraHeaders())) { diff --git a/include/staff/helptopic.inc.php b/include/staff/helptopic.inc.php index 8cb90850d546d9080495833ea95de0d1f5376f1a..b6783666998c52af37d30c4e3ed401c272ff65f0 100644 --- a/include/staff/helptopic.inc.php +++ b/include/staff/helptopic.inc.php @@ -15,7 +15,7 @@ if($topic && $_REQUEST['a']!='add') { $title=__('Add New Help Topic'); $action='create'; $submit_text=__('Add Topic'); - $info['isactive']=isset($info['isactive'])?$info['isactive']:1; + // $info['isactive']=isset($info['isactive'])?$info['isactive']:1; $info['ispublic']=isset($info['ispublic'])?$info['ispublic']:1; $qs += array('a' => $_REQUEST['a']); $forms = TicketForm::objects(); @@ -60,8 +60,11 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); <?php echo __('Status');?>: </td> <td> - <input type="radio" name="isactive" value="1" <?php echo $info['isactive']?'checked="checked"':''; ?>> <?php echo __('Active'); ?> - <input type="radio" name="isactive" value="0" <?php echo !$info['isactive']?'checked="checked"':''; ?>> <?php echo __('Disabled'); ?> + <select name="status"> + <option value="Active"<?php echo ($info['status'] == __('Active'))?'selected="selected"':'';?>><?php echo __('Active'); ?></option> + <option value="Disabled"<?php echo ($info['status'] == __('Disabled'))?'selected="selected"':'';?>><?php echo __('Disabled'); ?></option> + <option value="Archived"<?php echo ($info['status'] == __('Archived'))?'selected="selected"':'';?>><?php echo __('Archived'); ?></option> + </select> <span class="error">* </span> <i class="help-tip icon-question-sign" href="#status"></i> </td> </tr> @@ -82,7 +85,7 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); <td> <select name="topic_pid"> <option value="">— <?php echo __('Top-Level Topic'); ?> —</option><?php - $topics = Topic::getAllHelpTopics(); + $topics = Topic::getHelpTopics(); while (list($id,$topic) = each($topics)) { if ($id == $info['topic_id']) continue; ?> @@ -122,13 +125,26 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); <select name="dept_id" data-quick-add="department"> <option value="0">— <?php echo __('System Default'); ?> —</option> <?php - foreach (Dept::getDepartments() as $id=>$name) { + if($info['dept_id']) + $current_name = Dept::getNameById($info['dept_id']); + if ($depts=Dept::getPublicDepartments()) { + if(!array_key_exists($info['dept_id'], $depts) && $info['dept_id']) + { + $depts[$info['dept_id']] = $current_name; + $warn = sprintf(__('%s selected must be active'), __('Department')); + } + foreach ($depts as $id=>$name) { $selected=($info['dept_id'] && $id==$info['dept_id'])?'selected="selected"':''; echo sprintf('<option value="%d" %s>%s</option>',$id,$selected,$name); - } ?> + } + } + ?> <option value="0" data-quick-add>— <?php echo __('Add New');?> —</option> </select> - <span class="error"> <?php echo $errors['dept_id']; ?></span> + <?php + if($warn) { ?> + <span class="error">* <?php echo $warn; ?></span> + <?php } ?> <i class="help-tip icon-question-sign" href="#department"></i> </td> </tr> diff --git a/include/staff/helptopics.inc.php b/include/staff/helptopics.inc.php index 0b5c58580c22ffdb3c7774db0ac170a904accf57..8978b97e36c1b94b678d006dade0a26310992949 100644 --- a/include/staff/helptopics.inc.php +++ b/include/staff/helptopics.inc.php @@ -41,6 +41,12 @@ $order_by = 'sort'; <?php echo __( 'Disable'); ?> </a> </li> + <li> + <a class="confirm" data-name="archive" href="helptopics.php?a=archive"> + <i class="icon-folder-close icon-fixed-width"></i> + <?php echo __( 'Archive'); ?> + </a> + </li> <li class="danger"> <a class="confirm" data-name="delete" href="helptopics.php?a=delete"> <i class="icon-trash icon-fixed-width"></i> @@ -142,7 +148,13 @@ $order_by = 'sort'; <a href="helptopics.php?id=<?php echo $id; ?>"><?php echo Topic::getTopicName($id); ?></a> </td> - <td><?php echo $topic->isactive ? __('Active') : '<b>'.__('Disabled').'</b>'; ?></td> + <td><?php + if($topic->getStatus() == __('Active')) + echo $topic->getStatus(); + else + echo '<b>'.$topic->getStatus(); + ?> + </td> <td><?php echo $topic->ispublic ? __('Public') : '<b>'.__('Private').'</b>'; ?></td> <td><?php echo $priority; ?></td> <td><a href="departments.php?id=<?php echo $deptId; @@ -189,6 +201,10 @@ endif; <?php echo sprintf(__('Are you sure you want to <b>disable</b> %s?'), _N('selected help topic', 'selected help topics', 2));?> </p> + <p class="confirm-action" style="display:none;" id="archive-confirm"> + <?php echo sprintf(__('Are you sure you want to <b>archive</b> %s?'), + _N('selected help topic', 'selected help topics', 2));?> + </p> <p class="confirm-action" style="display:none;" id="delete-confirm"> <font color="red"><strong><?php echo sprintf(__('Are you sure you want to DELETE %s?'), _N('selected help topic', 'selected help topics', 2));?></strong></font> diff --git a/include/staff/login.tpl.php b/include/staff/login.tpl.php index 228ec612b0208a0fda92c45cb2439e50a37d7d6f..ca9e751af253d4dab84a91a52722f113fcf63708 100644 --- a/include/staff/login.tpl.php +++ b/include/staff/login.tpl.php @@ -11,9 +11,9 @@ $info = ($_POST && $errors)?Format::htmlchars($_POST):array(); <span class="valign-helper"></span> <img src="logo.php?login" alt="osTicket :: <?php echo __('Staff Control Panel');?>" /> </a></h1> - <h3><?php echo Format::htmlchars($msg); ?></h3> + <h3 id="login-message"><?php echo Format::htmlchars($msg); ?></h3> <div class="banner"><small><?php echo ($content) ? Format::display($content->getLocalBody()) : ''; ?></small></div> - <form action="login.php" method="post" id="login"> + <form action="login.php" method="post" id="login" onsubmit="attemptLoginAjax(event)"> <?php csrf_token(); ?> <input type="hidden" name="do" value="scplogin"> <fieldset> @@ -21,10 +21,11 @@ $info = ($_POST && $errors)?Format::htmlchars($_POST):array(); echo $info['userid']; ?>" placeholder="<?php echo __('Email or Username'); ?>" autofocus autocorrect="off" autocapitalize="off"> <input type="password" name="passwd" id="pass" placeholder="<?php echo __('Password'); ?>" autocorrect="off" autocapitalize="off"> - <?php if ($show_reset && $cfg->allowPasswordReset()) { ?> - <h3 style="display:inline"><a href="pwreset.php"><?php echo __('Forgot My Password'); ?></a></h3> - <?php } ?> - <button class="submit button pull-right" type="submit" name="submit"><i class="icon-signin"></i> + <h3 style="display:inline"><a id="reset-link" class="<?php + if (!$show_reset || !$cfg->allowPasswordReset()) echo 'hidden'; + ?>" href="pwreset.php"><?php echo __('Forgot My Password'); ?></a></h3> + <button class="submit button pull-right" type="submit" + name="submit"><i class="icon-signin"></i> <?php echo __('Log In'); ?> </button> </fieldset> @@ -61,11 +62,85 @@ if (count($ext_bks)) { ?> document.getElementById('loginBox').style.backgroundColor = 'white'; } }); + + function attemptLoginAjax(e) { + var objectifyForm = function(formArray) { //serialize data function + var returnArray = {}; + for (var i = 0; i < formArray.length; i++) { + returnArray[formArray[i]['name']] = formArray[i]['value']; + } + return returnArray; + }; + if ($.fn.effect) { + // For some reason, JQuery-UI shake does not considere an element's + // padding when shaking. Looks like it might be fixed in 1.12. + // Thanks, https://stackoverflow.com/a/22302374 + var oldEffect = $.fn.effect; + $.fn.effect = function (effectName) { + if (effectName === "shake") { + var old = $.effects.createWrapper; + $.effects.createWrapper = function (element) { + var result; + var oldCSS = $.fn.css; + + $.fn.css = function (size) { + var _element = this; + var hasOwn = Object.prototype.hasOwnProperty; + return _element === element && hasOwn.call(size, "width") && hasOwn.call(size, "height") && _element || oldCSS.apply(this, arguments); + }; + + result = old.apply(this, arguments); + + $.fn.css = oldCSS; + return result; + }; + } + return oldEffect.apply(this, arguments); + }; + } + var form = $(e.target), + data = objectifyForm(form.serializeArray()) + data.ajax = 1; + $.ajax({ + url: form.attr('action'), + method: 'POST', + data: data, + cache: false, + success: function(json) { + if (!typeof(json) === 'object' || !json.status) + return; + switch (json.status) { + case 401: + if (json && json.redirect) + document.location.href = json.redirect; + if (json && json.message) + $('#login-message').text(json.message) + if (json && json.show_reset) + $('#reset-link').show() + if ($.fn.effect) { + $('#loginBox').effect('shake') + } + // Clear the password field + $('#pass').val('').focus(); + break + case 302: + if (json && json.redirect) + document.location.href = json.redirect; + break + } + }, + }); + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + return false; + } </script> <!--[if IE]> <style> #loginBox:after { background-color: white !important; } </style> <![endif]--> + <script type="text/javascript" src="<?php echo ROOT_PATH; ?>js/jquery-ui-1.10.3.custom.min.js"></script> </body> </html> diff --git a/include/staff/staff.inc.php b/include/staff/staff.inc.php index 4fce85b4f64ad7908964ca0614c6d34b7f73ab17..217daa065de2b514b2b11aac7b2cd246be4fde1f 100644 --- a/include/staff/staff.inc.php +++ b/include/staff/staff.inc.php @@ -228,15 +228,25 @@ if (count($bks) > 1) { <select name="dept_id" id="dept_id" data-quick-add="department"> <option value="0">— <?php echo __('Select Department');?> —</option> <?php - foreach (Dept::getDepartments() as $id=>$name) { - $sel=($staff->dept_id==$id)?'selected="selected"':''; - echo sprintf('<option value="%d" %s>%s</option>',$id,$sel,$name); + if($depts = Dept::getPublicDepartments()) { + if($staff->dept_id && !array_key_exists($staff->dept_id, $depts)) + { + $depts[$staff->dept_id] = $staff->dept; + $warn = sprintf(__('%s selected must be active'), __('Department')); + } + foreach($depts as $id =>$name) { + $sel=($staff->dept_id==$id)?'selected="selected"':''; + echo sprintf('<option value="%d" %s>%s</option>',$id,$sel,$name); + } } ?> <option value="0" data-quick-add>— <?php echo __('Add New');?> —</option> </select> <i class="offset help-tip icon-question-sign" href="#primary_department"></i> - <div class="error"><?php echo $errors['dept_id']; ?></div> + <?php + if($warn) { ?> + <span class="error">* <?php echo $warn; ?></span> + <?php } ?> </td> <td style="vertical-align:top"> <select name="role_id" data-quick-add="role"> diff --git a/include/staff/staffmembers.inc.php b/include/staff/staffmembers.inc.php index 97f7c1265249a845d5bfb49d3705e66638e44569..9c3c76020c4e04ad6d17f014ac9eea413a057073 100644 --- a/include/staff/staffmembers.inc.php +++ b/include/staff/staffmembers.inc.php @@ -143,6 +143,12 @@ $agents->limit($pageNav->getLimit())->offset($pageNav->getStart()); <?php echo __( 'Change Department'); ?> </a> </li> + <li> + <a class="no-pjax" href="staff.php?a=export"> + <i class="icon-download-alt icon-fixed-width"></i> + <?php echo __( 'Export Agents'); ?> + </a> + </li> <!-- TODO: Implement "Reset Access" mass action <li><a class="dialog-first" href="#staff/reset-access"> <i class="icon-puzzle-piece icon-fixed-width"></i> diff --git a/include/staff/tasks.inc.php b/include/staff/tasks.inc.php index a67a6dc7968ce000998476b44bb7f23ed4b7b7ae..c8983aca53190d4b300f0894590ae3978c51d224 100644 --- a/include/staff/tasks.inc.php +++ b/include/staff/tasks.inc.php @@ -94,14 +94,6 @@ case 'search': ))); unset($_SESSION[$queue_key]); break; - } elseif (isset($_SESSION['advsearch:tasks'])) { - // XXX: De-duplicate and simplify this code - $form = $search->getFormFromSession('advsearch:tasks'); - $form->loadState($_SESSION['advsearch:tasks']); - $tasks = $search->mangleQuerySet($tasks, $form); - $results_type=__('Advanced Search') - . '<a class="action-button" href="?clear_filter"><i class="icon-ban-circle"></i> <em>' . __('clear') . '</em></a>'; - break; } // Fall-through and show open tickets case 'open': diff --git a/include/staff/templates/advanced-search-criteria.tmpl.php b/include/staff/templates/advanced-search-criteria.tmpl.php index 136c7d139bb7a35d382757fe2e534230f79d997a..4390cbc001061cc129676da900cebd3080913e77 100644 --- a/include/staff/templates/advanced-search-criteria.tmpl.php +++ b/include/staff/templates/advanced-search-criteria.tmpl.php @@ -88,6 +88,24 @@ foreach ($matches as $path => $F) { <?php } } ?> </select> + +<div class="row"> +</br> + <label class="checkbox inline"><input id="save-search" type="checkbox" name="save-search" + + onclick="javascript: + var form = $(this).closest('form'); + form.attr('action', form.attr('action') + '/' + <?php echo + $search->id ?: "'create'"; ?>);"> + <?php echo __('Save Search'); ?></label> + </br> + <input name="name" type="text" size="40" style="margin-top: 5px;" + value="<?php echo Format::htmlchars($search->getName()); ?>" + placeholder="<?php + echo __('Search Title'); ?>"/> + <div class="error"><?php echo Format::htmlchars($errors['name']); ?></div> +</div> + <script> $(function() { $('#search-add-new-field').on('change', function() { diff --git a/include/staff/templates/advanced-search.tmpl.php b/include/staff/templates/advanced-search.tmpl.php index 5cee3f051097b552c880c0dcd551d60427fed2ee..e904b971f280a0126d2f13d6473c4f0ce44bb3f9 100644 --- a/include/staff/templates/advanced-search.tmpl.php +++ b/include/staff/templates/advanced-search.tmpl.php @@ -34,15 +34,6 @@ foreach ($queues as $id => $name) { </select> </div> </div> - <div class="flex row"> - <div class="span12"> - <input name="name" type="text" size="30" - value="<?php echo Format::htmlchars($search->getName()); ?>" - placeholder="<?php - echo __('Enter a title for the search queue'); ?>"/> - <div class="error"><?php echo Format::htmlchars($errors['name']); ?></div> - </div> - </div> <ul class="clean tabs"> <li class="active"><a href="#criteria"><i class="icon-search"></i> <?php echo __('Criteria'); ?></a></li> <li><a href="#columns"><i class="icon-columns"></i> <?php echo __('Columns'); ?></a></li> @@ -86,14 +77,6 @@ height:auto;"> <button class="button" type="submit" name="submit" value="search" id="do_search"><i class="icon-search"></i> <?php echo __('Search'); ?></button> - <button class="green button" type="submit" name="submit" value="save" - onclick="javascript: - var form = $(this).closest('form'); - form.attr('action', form.attr('action') + '/' + <?php echo - $search->id ?: "'create'"; ?>);" - ><i class="icon-save"></i> - <?php echo __('Save'); ?> - </button> </div> </div> diff --git a/include/staff/templates/form-manage.tmpl.php b/include/staff/templates/form-manage.tmpl.php index 9794bdbdda6a3e0687f8803e49eee563b85c9a06..2874181d6f8c15981de6be708d3d64e8d7f4f278 100644 --- a/include/staff/templates/form-manage.tmpl.php +++ b/include/staff/templates/form-manage.tmpl.php @@ -16,7 +16,7 @@ foreach ($forms as $e) { ?> $current_list[] = $e->get('form_id'); if ($e->getDynamicForm()->get('type') == 'G') { ?> <div class="button-group"> - <div class="delete"><a href="#"><i class="icon-trash"></i></a></div> + <div class="delete"><a href="#" onclick="$(this).closest('div.row-item').remove();$('#delete-warning').show();"><i class="icon-trash"></i></a></div> </div> <?php } ?> </div> diff --git a/include/staff/templates/status-options.tmpl.php b/include/staff/templates/status-options.tmpl.php index 1c9bad9e894146e8818a8b34b5fded288cbdda72..c8cff18a94cc8b06535f0ecd017a2b87df9fd841 100644 --- a/include/staff/templates/status-options.tmpl.php +++ b/include/staff/templates/status-options.tmpl.php @@ -15,7 +15,7 @@ $actions= array( $states = array('open'); if ($thisstaff->getRole($ticket ? $ticket->getDeptId() : null)->hasPerm(Ticket::PERM_CLOSE) - && (!$ticket || !$ticket->getMissingRequiredFields())) + && (!$ticket || !Ticket::getMissingRequiredFields($ticket))) $states = array_merge($states, array('closed')); $statusId = $ticket ? $ticket->getStatusId() : 0; diff --git a/include/staff/templates/task-view.tmpl.php b/include/staff/templates/task-view.tmpl.php index 84cbcdea7823c8fe4e8bf441d539d5092c10df4d..0f6d44adf483efa54507354218d700bdb1c9b1eb 100644 --- a/include/staff/templates/task-view.tmpl.php +++ b/include/staff/templates/task-view.tmpl.php @@ -78,7 +78,7 @@ if ($role->hasPerm(Task::PERM_DELETE)) { 'delete' => array( 'href' => sprintf('#tasks/%d/delete', $task->getId()), 'icon' => 'icon-trash', - 'class' => 'red button', + 'class' => (strpos($_SERVER['REQUEST_URI'], 'tickets.php') !== false) ? 'danger' : 'red button', 'label' => __('Delete'), 'redirect' => 'tasks.php' )); @@ -268,7 +268,7 @@ if ($task->isOverdue()) <?php foreach ($actions as $action) {?> <span class="action-button <?php echo $action['class'] ?: ''; ?>"> - <a class="task-action" + <a class="<?php echo ($action['class'] == 'no-pjax') ? '' : 'task-action'; ?>" <?php if ($action['dialog']) echo sprintf("data-dialog-config='%s'", $action['dialog']); diff --git a/include/staff/templates/ticket-preview.tmpl.php b/include/staff/templates/ticket-preview.tmpl.php index 671201c48a37007083c00643d17f1088c29e6819..b615e37971f7fe9b7f4be23bc547192f752f2893 100644 --- a/include/staff/templates/ticket-preview.tmpl.php +++ b/include/staff/templates/ticket-preview.tmpl.php @@ -116,6 +116,38 @@ echo sprintf( echo ' </table>'; +?> +<?php +foreach (DynamicFormEntry::forTicket($ticket->getId()) as $form) { + // Skip core fields shown earlier in the ticket preview + $answers = $form->getAnswers()->exclude(Q::any(array( + 'field__flags__hasbit' => DynamicFormField::FLAG_EXT_STORED, + 'field__name__in' => array('subject', 'priority') + ))); + $displayed = array(); + foreach($answers as $a) { + if (!($v = $a->display())) + continue; + $displayed[] = array($a->getLocal('label'), $v); + } + if (count($displayed) == 0) + continue; + + echo '<hr>'; + echo '<table border="0" cellspacing="" cellpadding="1" width="100%" style="margin-bottom:0px;" class="ticket_info">'; + echo '<tbody>'; + + foreach ($displayed as $stuff) { + list($label, $v) = $stuff; + echo '<tr>'; + echo '<th width="20%" style="white-space: nowrap;">'.Format::htmlchars($label).':</th>'; + echo '<td>'.$v.'</td>'; + echo '</tr>'; + } + + echo '</tbody>'; + echo '</table>'; +} echo '</div>'; // ticket preview content. ?> <div class="hidden tab_content" id="collab"> @@ -142,8 +174,8 @@ echo '</div>'; // ticket preview content. <br> <?php echo sprintf('<span><a class="collaborators" - href="#tickets/%d/collaborators">%s</a></span>', - $ticket->getId(), + href="#thread/%d/collaborators">%s</a></span>', + $thread->getId(), $thread && $thread->getNumCollaborators() ? __('Manage Collaborators') : __('Add Collaborator') ); diff --git a/include/staff/templates/tickets.tmpl.php b/include/staff/templates/tickets.tmpl.php index 543ecaf7cae5e195333f5390cd8c2533853a5c46..160bfa6de5f813e20250b89c5c5cf527c5209911 100644 --- a/include/staff/templates/tickets.tmpl.php +++ b/include/staff/templates/tickets.tmpl.php @@ -85,7 +85,7 @@ TicketForm::ensureDynamicDataView(); if ($total) { echo '<strong>'.$pageNav->showing().'</strong>'; } else { - echo sprintf(__('%s does not have any tickets'), $user? 'User' : 'Organization'); + echo sprintf(__('%s does not have any tickets'), $user? __('User') : __('Organization')); } ?> </div> diff --git a/include/staff/templates/users.tmpl.php b/include/staff/templates/users.tmpl.php index 7d56f26ef739863fd02ec9ccfdfdd89c82b3d9ef..b34fa61111e05dac6726e6f379a1b67b6d88a83c 100644 --- a/include/staff/templates/users.tmpl.php +++ b/include/staff/templates/users.tmpl.php @@ -36,7 +36,10 @@ $pageNav=new Pagenate($total,$page,PAGE_LIMIT); $qstr = '&'. Http::build_query($qs); $qs += array('sort' => $_REQUEST['sort'], 'order' => $_REQUEST['order']); -$pageNav->setURL('users.php', $qs); +if (strpos($_SERVER['REQUEST_URI'], 'orgs.php') !== false) + $pageNav->setURL('orgs.php?id='.$org->getId().'&', $qs); +else + $pageNav->setURL('users.php', $qs); //Ok..lets roll...create the actual query $qstr .= '&order='.($order=='DESC' ? 'ASC' : 'DESC'); diff --git a/include/staff/ticket-edit.inc.php b/include/staff/ticket-edit.inc.php index c3e7e0e4dcef19c80f9aee62776c99a6266d029c..f77e02b8715cf9ce690b56777163b743c39551f7 100644 --- a/include/staff/ticket-edit.inc.php +++ b/include/staff/ticket-edit.inc.php @@ -94,6 +94,11 @@ if ($_POST) <option value="" selected >— <?php echo __('Select Help Topic');?> —</option> <?php if($topics=Topic::getHelpTopics()) { + if(!array_key_exists($ticket->topic_id, $topics)) + { + $topics[$ticket->topic_id] = $ticket->topic; + $warn = sprintf(__('%s selected must be active'), __('Help Topic')); + } foreach($topics as $id =>$name) { echo sprintf('<option value="%d" %s>%s</option>', $id, ($info['topicId']==$id)?'selected="selected"':'',$name); @@ -101,7 +106,10 @@ if ($_POST) } ?> </select> - <font class="error"><b>*</b> <?php echo $errors['topicId']; ?></font> + <?php + if($warn) { ?> + <font class="error"><b>*</b> <?php echo $warn; ?></font> + <?php } ?> </td> </tr> <tr> @@ -154,7 +162,7 @@ if ($_POST) <tbody> <tr> <th colspan="2"> - <em><strong><?php echo __('Internal Note');?></strong>: <?php echo __('Reason for editing the ticket (required)');?> <font class="error"> <?php echo $errors['note'];?></font></em> + <em><strong><?php echo __('Internal Note');?></strong>: <?php echo __('Reason for editing the ticket (optional)');?> <font class="error"> <?php echo $errors['note'];?></font></em> </th> </tr> <tr> diff --git a/include/staff/ticket-open.inc.php b/include/staff/ticket-open.inc.php index 1056cdab817f26cbad23c5c835f114d57172bdf2..aa396305a70f7b99c0a12e4bad6ed4cbe04e6257 100644 --- a/include/staff/ticket-open.inc.php +++ b/include/staff/ticket-open.inc.php @@ -248,7 +248,7 @@ if ($_POST) <select name="deptId"> <option value="" selected >— <?php echo __('Select Department'); ?>—</option> <?php - if($depts=Dept::getDepartments(array('dept_id' => $thisstaff->getDepts()))) { + if($depts=Dept::getPublicDepartments()) { foreach($depts as $id =>$name) { if (!($role = $thisstaff->getRole($id)) || !$role->hasPerm(Ticket::PERM_CREATE) @@ -358,7 +358,7 @@ if ($_POST) <tr> <td colspan=2> <?php - if(($cannedResponses=Canned::getCannedResponses())) { + if($cfg->isCannedResponseEnabled() && ($cannedResponses=Canned::getCannedResponses())) { ?> <div style="margin-top:0.3em;margin-bottom:0.5em"> <?php echo __('Canned Response');?>: @@ -466,13 +466,9 @@ print $response_form->getField('attachments')->render(); <input type="submit" name="submit" value="<?php echo _P('action-button', 'Open');?>"> <input type="reset" name="reset" value="<?php echo __('Reset');?>"> <input type="button" name="cancel" value="<?php echo __('Cancel');?>" onclick="javascript: - $('.richtext').each(function() { - var redactor = $(this).data('redactor'); - if (redactor && redactor.opts.draftDelete) - redactor.deleteDraft(); - }); - window.location.href='tickets.php'; - "> + $(this.form).find('textarea.richtext') + .redactor('draft.deleteDraft'); + window.location.href='tickets.php'; " /> </p> </form> <script type="text/javascript"> diff --git a/include/staff/ticket-view.inc.php b/include/staff/ticket-view.inc.php index e7440d13a1cdc1103c8df31a68ad731ddb716ea6..f5d7ae5f7ba3bf740000ed119c2e1429b2e3324e 100644 --- a/include/staff/ticket-view.inc.php +++ b/include/staff/ticket-view.inc.php @@ -262,7 +262,18 @@ if($ticket->isOverdue()) <table border="0" cellspacing="" cellpadding="4" width="100%"> <tr> <th width="100"><?php echo __('Status');?>:</th> - <td><?php echo ($S = $ticket->getStatus()) ? $S->display() : ''; ?></td> + <?php + if ($role->hasPerm(Ticket::PERM_CLOSE)) {?> + <td> + <a class="tickets-action" data-dropdown="#action-dropdown-statuses" data-placement="bottom" data-toggle="tooltip" title="<?php echo __('Change Status'); ?>" + data-redirect="tickets.php?id=<?php echo $ticket->getId(); ?>" + href="#statuses"> + <?php echo $ticket->getStatus(); ?> + </a> + </td> + <?php } else { ?> + <td><?php echo ($S = $ticket->getStatus()) ? $S->display() : ''; ?></td> + <?php } ?> </tr> <tr> <th><?php echo __('Priority');?>:</th> @@ -575,7 +586,7 @@ foreach (DynamicFormEntry::forTicket($ticket->getId()) as $form) { ))); $displayed = array(); foreach($answers as $a) { - $displayed[] = array($a->getLocal('label'), $a->display() ?: __('Enter'), $a->getLocal('id')); + $displayed[] = array($a->getLocal('label'), $a->display() ?: '<span class="faded">—' . __('Empty') . '— </span>', $a->getLocal('id')); } if (count($displayed) == 0) continue; @@ -587,7 +598,7 @@ foreach (DynamicFormEntry::forTicket($ticket->getId()) as $form) { <tbody> <?php foreach ($displayed as $stuff) { - list($label, $v) = $stuff; + list($label, $v, $id) = $stuff; ?> <tr> <td width="200"><?php echo Format::htmlchars($label); ?>:</td> diff --git a/include/upgrader/done.inc.php b/include/upgrader/done.inc.php index 894d7ff2976f874539e7d8b13b2c2d63d5bbb286..2ad200f78b41fd148a91a31696ed83d7c2b66fc7 100644 --- a/include/upgrader/done.inc.php +++ b/include/upgrader/done.inc.php @@ -28,7 +28,7 @@ $_SESSION['ost_upgrader']=null; sprintf('<a href="'. ROOT_PATH . 'scp/settings.php" target="_blank">%s</a>', __('Admin Panel')), sprintf('<a href="http://osticket.com/wiki/Release_Notes" target="_blank">%s</a>', __('osTicket Wiki')));?></p> <p><b><?php echo __('Stay up to date');?></b>: <?php echo __("It's important to keep your osTicket installation up to date. Get announcements, security updates and alerts delivered directly to you!");?> - <?php echo sprintf(__('%1$s Get in the loop %2$s today and stay informed!'), '<a target="_blank" href="http://osticket.com/subscribe.php">', '</a>');?></p> + <?php echo sprintf(__('%1$s Get in the loop %2$s today and stay informed!'), '<a target="_blank" href="http://osticket.com/newsletter">', '</a>');?></p> <p><b><?php echo __('Commercial Support Available');?></b>: <?php echo sprintf(__('Get guidance and hands-on expertise to address unique challenges and make sure your osTicket runs smoothly, efficiently, and securely. %1$s Learn More! %2$s'), '<a target="_blank" href="http://osticket.com/support">','</a>');?></p> </div> <div class="clear"></div> diff --git a/include/upgrader/streams/core.sig b/include/upgrader/streams/core.sig index e791d7b4a64d84a4f7c28ead42d9b5e37d04fc9c..4ad11e1f415bd953c9e8a80441aa12cdb7bbf5dc 100644 --- a/include/upgrader/streams/core.sig +++ b/include/upgrader/streams/core.sig @@ -1 +1 @@ -526c601bc1748febb192f854699f170a +e7dfe82131b906a14f6a13163943855f diff --git a/include/upgrader/streams/core/526c601b-cce1ba43.patch.sql b/include/upgrader/streams/core/526c601b-cce1ba43.patch.sql new file mode 100644 index 0000000000000000000000000000000000000000..215e5c5bec67e83fb03de679dd634e424b2cf1ec --- /dev/null +++ b/include/upgrader/streams/core/526c601b-cce1ba43.patch.sql @@ -0,0 +1,32 @@ +/** +* @signature cce1ba439ea7e50fcb845fd067779088 +* @version v1.11.0 +* @title Archive Departments and Help Topics +* +* This patch replaces the isactive field on Help Topics with using the flags field to add a new status called 'archived'. +* It also adds a status field to Departments, allowing Agents to activate, disable, and archive Departments +* through using the flags field +* +* Finally, a flag field is added to the filter table +*/ +-- Help Topics +UPDATE `%TABLE_PREFIX%help_topic` + SET `flags` = `flags` + 2 + WHERE `isactive` = 1; + +ALTER TABLE `%TABLE_PREFIX%help_topic` + DROP COLUMN `isactive`; + +-- Departments +UPDATE `%TABLE_PREFIX%department` + SET `flags` = `flags` + 4 + WHERE `ispublic` = 1; + +-- Ticket Filters +ALTER TABLE `%TABLE_PREFIX%filter` + ADD `flags` int(10) unsigned DEFAULT '0' AFTER `isactive`; + + -- Finished with patch +UPDATE `%TABLE_PREFIX%config` + SET `value` = 'cce1ba439ea7e50fcb845fd067779088' + WHERE `key` = 'schema_signature' AND `namespace` = 'core'; diff --git a/include/upgrader/streams/core/86707325-526c601b.cleanup.sql b/include/upgrader/streams/core/86707325-526c601b.cleanup.sql new file mode 100644 index 0000000000000000000000000000000000000000..caa1687c5ca775f23d91aff96ce829a4e705663d --- /dev/null +++ b/include/upgrader/streams/core/86707325-526c601b.cleanup.sql @@ -0,0 +1,7 @@ +-- set thread entry pid's to show Service/Response time in Dashboard +UPDATE `%TABLE_PREFIX%thread_entry` AS this +INNER JOIN ( + SELECT `%TABLE_PREFIX%thread_entry`.`id`,`%TABLE_PREFIX%thread_entry`.`thread_id`,`%TABLE_PREFIX%thread_entry`.`type` + FROM `%TABLE_PREFIX%thread_entry` WHERE `%TABLE_PREFIX%thread_entry`.`type` = 'M') AS that +SET this.`pid` = that.`id` +WHERE this.`thread_id` = that.`thread_id` AND that.`type` = 'M' AND this.type = 'R' AND this.`id` > that.`id` AND this.`pid` = 0 diff --git a/include/upgrader/streams/core/cce1ba43-e7dfe821.patch.sql b/include/upgrader/streams/core/cce1ba43-e7dfe821.patch.sql new file mode 100644 index 0000000000000000000000000000000000000000..660400dde7260d323533cfb805b7b8a94b8ec68c --- /dev/null +++ b/include/upgrader/streams/core/cce1ba43-e7dfe821.patch.sql @@ -0,0 +1,15 @@ +/** +* @signature e7dfe82131b906a14f6a13163943855f +* @version v1.11.0 +* @title Nested Knowledgebase Categories +* +* This patch adds a new field, category_pid, to the faq_category table +* to allow for adding nested categories to the knowledgebase. +*/ +ALTER TABLE `%TABLE_PREFIX%faq_category` + ADD `category_pid` int(10) unsigned DEFAULT NULL AFTER `category_id`; + + -- Finished with patch +UPDATE `%TABLE_PREFIX%config` + SET `value` = 'e7dfe82131b906a14f6a13163943855f' + WHERE `key` = 'schema_signature' AND `namespace` = 'core'; diff --git a/js/osticket.js b/js/osticket.js index bd2f937e61af3b5f7cabd3b53e1d635cbb324486..3d82e2ba1152960450a75e0f2c3ccdd428af7edb 100644 --- a/js/osticket.js +++ b/js/osticket.js @@ -173,13 +173,21 @@ getConfig = (function() { $.translate_format = function(str) { var translation = { - 'd':'dd', - 'j':'d', - 'z':'o', - 'm':'mm', - 'F':'MM', - 'n':'m', - 'Y':'yy' + 'DD': 'oo', + 'D': 'o', + 'EEEE': 'DD', + 'EEE': 'D', + 'MMMM': '||', // Double replace necessary + 'MMM': '|', + 'MM': 'mm', + 'M': 'm', + '||': 'MM', + '|': 'M', + 'yyyy': '`', + 'yyy': '`', + 'yy': 'y', + 'y': 'yy', + '`': 'yy' }; // Change PHP formats to datepicker ones $.each(translation, function(php, jqdp) { diff --git a/js/redactor-osticket.js b/js/redactor-osticket.js index 23a30fc29676d221f0f69e15f0c1f757f796acf0..12a496c98825195224f72a12c1faed684e9dbc2f 100644 --- a/js/redactor-osticket.js +++ b/js/redactor-osticket.js @@ -94,6 +94,7 @@ RedactorPlugins.draft = function() { // No change yet — dont't show the button return; } + this.$box.find('textarea').attr('data-draft-id', this.opts.draftId); if (data && this.code.get()) { this.$draft_saved.show().delay(5000).fadeOut(); } @@ -290,10 +291,10 @@ $(function() { var reset = $('input[type=reset]', el.closest('form')); if (reset) { reset.click(function() { - if (el.hasClass('draft')) - el.redactor('deleteDraft'); + if (el.attr('data-draft-id')) + el.redactor('draft.deleteDraft').attr('data-draft-id', ''); else - el.redactor('set', '', false, false); + el.redactor('insert.set', '', false, false); }); } $('input[type=submit]', el.closest('form')).on('click', function() { diff --git a/js/redactor.min.js b/js/redactor.min.js index 1a97a6de53e1f2c8b24df7e33010f683dadf8f06..2387ee4aa6d07338f6e7b6da14071463c44bcdd7 100644 --- a/js/redactor.min.js +++ b/js/redactor.min.js @@ -9,4 +9,4 @@ Usage: $('#content').redactor(); */ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(C($){\'mI m0\';if(!g7.5w.aH){g7.5w.aH=C(eW){E fn=q;F C(){F fn.9E(eW)}}}E 2G=0;$.fn.I=C(44){E 2K=[];E eI=9F.5w.ct.6e(fA,1);if(1s 44===\'6Z\'){q.1B(C(){E 6u=$.1f(q,\'I\');E 1C;if(44.3N(/\\./)!=\'-1\'){1C=44.4o(\'.\');if(1s 6u[1C[0]]!=\'1y\'){1C=6u[1C[0]][1C[1]]}}N{1C=6u[44]}if(1s 6u!==\'1y\'&&$.5k(1C)){E 9L=1C.9E(6u,eI);if(9L!==1y&&9L!==6u){2K.2N(9L)}}N{$.6U(\'lX lL bx "\'+44+\'" 2B 47\')}})}N{q.1B(C(){$.1f(q,\'I\',{});$.1f(q,\'I\',47(q,44))})}if(2K.12===0)F q;N if(2K.12===1)F 2K[0];N F 2K};C 47(el,44){F 2a 47.5w.3Q(el,44)}$.47=47;$.47.l2=\'10.2.2\';$.47.d4=[\'3b\',\'3r\',\'R\',\'25\',\'2o\',\'1t\',\'1V\',\'1x\',\'1e\',\'1X\',\'1n\',\'22\',\'2n\',\'M\',\'3y\',\'28\',\'1Y\',\'1D\',\'2s\',\'1H\',\'3K\',\'V\',\'2z\',\'2e\',\'1a\',\'1R\',\'2V\',\'5C\',\'3f\',\'5E\',\'J\',\'6m\',\'2H\',\'1I\',\'1A\',\'1v\',\'L\'];$.47.G={1H:\'en\',d7:\'l1\',8r:O,2n:O,fP:O,3f:O,6r:1q,6S:O,aG:O,aI:O,1M:O,5Q:1q,2V:1q,fh:O,al:1q,jJ:1q,hj:1q,hL:O,3r:O,d5:O,9m:60,d6:O,9O:O,j4:1q,5c:\'8s\',hR:O,cs:50,dq:1q,hE:1q,hH:1q,8x:\'lE\',dp:1q,75:4e,k1:\'22\',lh:O,fB:1q,76:4e,k2:\'22\',fF:1q,7V:O,a2:1q,c1:1q,bX:1q,93:1q,6v:4,9Y:O,fp:1q,9p:O,1A:1q,iS:1q,6y:1l,6z:0,bf:O,iO:O,4E:1q,4i:[\'B\',\'3a\',\'4n\',\'4m\',\'5Y\',\'5m\',\'5z\',\'7p\',\'3y\',\'M\',\'22\',\'V\',\'3b\',\'b3\'],cw:[],cv:[],3a:[\'p\',\'29\',\'2F\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'],dT:O,2H:1q,4c:[\'3V\',\'1o\'],4z:O,ej:[\'3W\',\'1i\',\'2F\',\'64\',\'3p\',\'ol\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\',\'dl\',\'29\',\'7Y\',\'du\',\'49\',\'87\',\'c8\',\'eE\',\'eS\',\'41\',\'1o\',\'3V\',\'4R\',\'7z\',\'3D\',\'2v\',\'1t\',\'42\',\'iA\',\'fx\',\'lf\',\'hr\',\'iT\',\'lj\',\'l7\',\'pJ\',\'6K\',\'pD\',\'pw\',\'pC\',\'p\'],6G:O,5B:[[\'7c\',\'4h\'],[\'b\',\'5i\']],5A:[[\'3R-7I:\\\\s?4n\',"5i"],[\'3R-1o:\\\\s?4m\',"em"],[\'1g-7a:\\\\s?5x\',"u"],[\'1g-7a:\\\\s?3K-eP\',\'4h\']],5y:O,1K:O,4T:O,6L:[\'1j\'],4f:[\'p\'],b5:[\'5Y\',\'4m\',\'4n\',\'5x\',\'5m\',\'5z\',\'pL\',\'pU\',\'pT\',\'9d\'],cg:{b:\'4n\',5i:\'4n\',i:\'4m\',em:\'4m\',4h:\'5Y\',7c:\'5Y\',3p:\'5m\',ol:\'5z\',u:\'5x\'},6m:{\'48+6E+m, 5h+6E+m\':{1C:\'28.dm\'},\'48+b, 5h+b\':{1C:\'28.30\',6p:[\'4n\']},\'48+i, 5h+i\':{1C:\'28.30\',6p:[\'4m\']},\'48+h, 5h+h\':{1C:\'28.30\',6p:[\'hv\']},\'48+l, 5h+l\':{1C:\'28.30\',6p:[\'hq\']},\'48+k, 5h+k\':{1C:\'V.2O\'},\'48+6E+7\':{1C:\'2e.3m\',6p:[\'5z\']},\'48+6E+8\':{1C:\'2e.3m\',6p:[\'5m\']}},js:O,25:[],9k:[],5S:\'<p>	T;</p>\',6o:\'	T;\',kb:[\'M/jG\',\'M/pW\',\'M/jN\'],ad:20,cW:[\'a\',\'1L\',\'b\',\'5i\',\'7l\',\'7Q\',\'i\',\'em\',\'u\',\'9f\',\'7c\',\'4h\',\'8S\',\'3p\',\'ol\',\'li\'],4N:[\'5i\',\'b\',\'u\',\'em\',\'i\',\'1e\',\'4h\',\'pX\',\'aN\',\'aS\',\'7Q\',\'7l\',\'6A\',\'E\',\'8S\',\'9f\'],8F:[\'P\',\'dK\',\'di\',\'cS\',\'cR\',\'cI\',\'cH\',\'pM\',\'pc\',\'pd\',\'89\',\'6F\',\'aK\',\'pe\',\'hM\',\'p8\',\'p2\',\'ph\',\'nA\',\'nB\',\'oH\'],8q:[\'8o\',\'8D\',\'8N\',\'5v\'],cA:O,1R:{79:[]},kn:{en:{B:\'oG\',6Y:\'6B gx\',M:\'6B hO\',3W:\'dz\',V:\'cO\',ba:\'6B V\',ca:\'jh V\',6P:\'oD\',3a:\'oW\',j2:\'ox 1g\',ci:\'oe\',1e:\'gS\',jb:\'9H 1\',jH:\'9H 2\',jI:\'9H 3\',jM:\'9H 4\',jD:\'9H 5\',4n:\'ou\',4m:\'qO\',om:\'oo j9\',ok:\'op j9\',5m:\'ov jK\',5z:\'os jK\',7p:\'ob\',3y:\'oy\',it:\'oE\',1Y:\'6B\',3o:\'oF\',hK:\'8w\',nk:\'6B dz\',nj:\'9r dV np\',ng:\'9r dV n3\',nb:\'9r co hU\',nU:\'9r co hS\',nZ:\'8w co\',nV:\'8w dV\',nI:\'8w dz\',nH:\'qj\',q2:\'q6\',qa:\'9r hl\',qt:\'8w hl\',1J:\'qM\',cC:\'qL\',5p:\'qK\',2c:\'hU\',4s:\'hS\',5u:\'gn\',qy:\'hO qB cO\',1g:\'pj\',bY:\'pi\',pn:\'cD\',po:\'gx p4 gS or pR/pK cO\',22:\'6B pI\',1v:\'pH\',lo:\'ld\',gc:\'lH\',lI:\'lA gc\',kY:\'jo 22 jm\',jt:\'gz 1g hB eZ 2c\',jx:\'gn 1g\',jB:\'gz 1g hB eZ 4s\',jA:\'m9 1g\',b3:\'6B m5 mc\',5Y:\'mC\',gV:\'ly\',aL:\'lv V in 2a 5I\',5x:\'lC\',3b:\'lu\',6k:\'lc (nE)\',7L:\'jh\',kD:\'jo 22 jm or \'}},2z:{4v:{72:/5o?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:lx\\.be\\/|72\\.a5\\S*[^\\w\\-\\s])([\\w\\-]{11})(?=[^\\w\\-]|$)(?![?=&+%\\w.\\-]*(?:[\'"][^<>]*>|<\\/a>))[?=&+%\\w.-]*/ig,71:/5o?:\\/\\/(7n\\.)?71.a5\\/(\\d+)($|\\/)/,M:/((5o?|7n)[^\\s]+\\.)(lK?g|jG|jN)(\\?[^\\s-]+)?/ig,2i:/(5o?:\\/\\/(?:7n\\.|(?!7n))[^\\s\\.]+\\.[^\\s]{2,}|7n\\.[^\\s]+\\.[^\\s]{2,})/ig,}},8n:O};47.fn=$.47.5w={3j:{84:8,8Q:46,l0:38,dW:40,70:13,a7:32,b2:27,dx:9,fK:17,fL:91,fU:16,fM:18,eB:39,lD:37,g0:91},3Q:C(el,44){q.$2j=$(el);q.2G=2G++;q.7B=O;q.$5e=O;q.jz(44);q.jy();q.3a={};$.mB(q.G.8q,q.G.8F);q.gm=2a 2l(\'^(\'+q.G.8q.3c(\'|\')+\')$\',\'i\');q.1I.ja();if(q.G.4c!==O){E 2d=[\'B\',\'e0\',\'V\',\'31\',\'5h\',\'mE\'];2B(E i=0;i<2d.12;i++){q.G.4c.2N(2d[i])}}q.1H.2R();$.7E(q.G.6m,q.G.js);q.1X.2u(\'2b\');q.2b=1q;q.2o.ki()},jz:C(44){q.G=$.7E({},$.7E(1q,{},$.47.G),q.$2j.1f(),44)},dg:C(41){F g8.mw(41).bW(C(ai){F 1s 41[ai]==\'C\'})},jy:C(){E 2p=$.47.d4.12;2B(E i=0;i<2p;i++){q.iq($.47.d4[i])}},iq:C(6D){if(1s q[6D]==\'1y\')F;q[6D]=q[6D]();E 5X=q.dg(q[6D]);E 2p=5X.12;2B(E z=0;z<2p;z++){q[6D][5X[z]]=q[6D][5X[z]].aH(q)}},3b:C(){F{2c:C(){q.3b.1U(\'\')},4s:C(){q.3b.1U(\'4s\')},5u:C(){q.3b.1U(\'5u\')},9d:C(){q.3b.1U(\'9d\')},1U:C(1m){if(!q.L.1P(\'2E\'))q.$T.2n();q.25.1U();q.J.3o();q.3b.1Z=q.J.3X();q.3b.1m=1m;if(q.3b.ix()){q.3b.im()}N{q.3b.iy()}q.J.3d();q.1e.1S()},im:C(){E 4M=q.J.5Z(\'1i\');$(4M).1c(\'1f-8b\',\'I\').1O(\'1g-5g\',q.3b.1m)},iy:C(){$.1B(q.3b.1Z,$.1d(C(i,el){E $el=q.L.bh(el);if(!$el)F;if(q.3b.il($el)){q.3b.i6($el)}N{q.3b.ib($el)}},q))},ix:C(){F(q.G.1M&&q.3b.1Z[0]===O)},il:C($el){F(q.3b.1m===\'\'&&1s($el.1f(\'8b\'))!==\'1y\')},i6:C($el){$el.2t($el.B())},ib:C($el){$el.1O(\'1g-5g\',q.3b.1m);q.L.5r($el,\'1o\')}}},3r:C(){F{B:O,9Q:C(){if(!q.G.3r)F;q.3r.1w=(q.G.d5)?q.G.d5:q.$2v.1c(\'1w\');if(q.G.d6)F;q.9m=m3(q.3r.2R,q.G.9m*m1)},h7:C(){if(!q.G.d6)F;q.3r.2R()},2R:C(){q.3r.4E=q.1e.1b();if(q.3r.B===q.3r.4E)F;E 1f={};1f[\'1w\']=q.3r.1w;1f[q.3r.1w]=q.3r.4E;1f=q.3r.6V(1f);E ih=$.lU({2i:q.G.3r,1m:\'lM\',1f:1f});ih.lT(q.3r.iR)},6V:C(1f){if(q.G.9O===O||1s q.G.9O!==\'41\'){F 1f}$.1B(q.G.9O,$.1d(C(k,v){if(v!==4e&&v.4y().4Q(\'#\')===0)v=$(v).2K();1f[k]=v},q));F 1f},iR:C(1f){E 2P;52{2P=$.jY(1f)}51(e){2P=1f}E iY=(1s 2P.6U==\'1y\')?\'3r\':\'mg\';q.1X.2u(iY,q.3r.1w,2P);q.3r.B=q.3r.4E},ml:C(){gu(q.9m)}}},R:C(){F{3a:C(1w){q.R.b1=O;E 1m,1E;if(1s q.3a[1w].1f!=\'1y\')1m=\'1f\';N if(1s q.3a[1w].1c!=\'1y\')1m=\'1c\';N if(1s q.3a[1w][\'1G\']!=\'1y\')1m=\'1G\';if(1s q.3a[1w].8M!=\'1y\'){q.R.b1=1q}if(1m)1E=q.3a[1w][1m];q.R.30(q.3a[1w].Y,1m,1E)},30:C(Y,1m,1E){if(Y==\'ci\')Y=\'29\';E iF=[\'p\',\'2F\',\'29\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'];if($.3t(Y,iF)==-1)F;q.R.8I=(Y==\'2F\'||Y.3N(/h[1-6]/i)!=-1);if(!q.L.1P(\'2E\'))q.$T.2n();E B=$.3k(q.$T.B());q.R.3z=q.L.3z(B);if(q.L.1P(\'4b\')&&!q.2n.dO()){if(q.R.3z){E $3I;if(!q.G.1M){$3I=q.$T.3O().3I();q.1V.3P($3I)}}}q.R.1Z=q.J.3X();q.R.7w=q.R.1Z.12;q.R.1m=1m;q.R.1E=1E;q.25.1U();q.J.3o();q.R.1U(Y);q.J.3d();q.1e.1S();q.1R.2R()},1U:C(Y){q.J.1b();q.R.69=q.14.iL.1p;if(q.14.53){q.R.iE(Y)}N{q.R.iB(Y)}},iE:C(Y){if(q.G.1M&&q.R.3z&&Y!=\'p\'){E Q=1l.3w(Y);q.$T.B(Q);q.1V.3P(Q);F}E R=q.R.1Z[0];if(R===O)F;if(R.1p==\'5v\'){if(Y!=\'29\')F;q.R.aF();F}E 9P=(q.R.69==\'6F\'||q.R.69==\'dn\');if(9P&&!q.G.1M){1l.3Z(\'9S\',O,\'<\'+Y+\'>\');R=q.J.4a();q.R.3m($(R))}N if(R.1p.3e()!=Y){if(q.G.1M&&Y==\'p\'){$(R).1F(\'<br>\');q.L.6i(R)}N{E $1W=q.L.4I(R,Y);q.R.3m($1W);if(Y!=\'p\'&&Y!=\'29\')$1W.1h(\'1L\').1u();if(q.R.8I)q.L.4Z($1W);if(Y==\'p\'||q.R.d2)$1W.1h(\'p\').26().3Y();q.R.d0($1W)}}N if(Y==\'29\'&&R.1p.3e()==Y){if(q.G.1M){$(R).1F(\'<br>\');q.L.6i(R)}N{E $el=q.L.4I(R,\'p\');q.R.3m($el)}}N if(R.1p.3e()==Y){q.R.3m($(R))}if(1s q.R.1m==\'1y\'&&1s q.R.1E==\'1y\'){$(R).1K(\'1G\').1K(\'1o\')}},iB:C(Y){E R=q.R.1Z[0];E 9P=(q.R.69==\'6F\'||q.R.69==\'dn\');if(R!==O&&q.R.7w===1){if(R.1p.3e()==Y&&Y==\'29\'){if(q.G.1M){$(R).1F(\'<br>\');q.L.6i(R)}N{E $el=q.L.4I(R,\'p\');q.R.3m($el)}}N if(R.1p==\'5v\'){if(Y!=\'29\')F;q.R.aF()}N if(q.R.69==\'aK\'){q.R.kS(Y)}N if(q.G.1M&&((9P)||(q.14.iL!=R))){q.R.aE(Y)}N{if(q.G.1M&&Y==\'p\'){$(R).6t(\'<br>\').1F(\'<br>\');q.L.6i(R)}N if(R.1p===\'6F\'){q.R.aE(Y)}N{E $1W=q.L.4I(R,Y);q.R.3m($1W);if(q.R.8I)q.L.4Z($1W);if(Y==\'p\'||q.R.d2)$1W.1h(\'p\').26().3Y()}}}N{if(q.G.1M||Y!=\'p\'){if(Y==\'29\'){E d3=0;2B(E i=0;i<q.R.7w;i++){if(q.R.1Z[i].1p==\'aK\')d3++}if(d3==q.R.7w){$.1B(q.R.1Z,$.1d(C(i,s){E $1W=O;if(q.G.1M){$(s).6t(\'<br>\').1F(\'<br>\');$1W=q.L.6i(s)}N{$1W=q.L.4I(s,\'p\')}if($1W&&1s q.R.1m==\'1y\'&&1s q.R.1E==\'1y\'){$1W.1K(\'1G\').1K(\'1o\')}},q));F}}q.R.aE(Y)}N{E 8B=0;E 5G=O;if(q.R.1m==\'1G\'){5G=\'3m\';8B=$(q.R.1Z).bW(\'.\'+q.R.1E).12;if(q.R.7w==8B)5G=\'3m\';N if(q.R.7w>8B)5G=\'1U\';N if(8B===0)5G=\'1U\'}E 9y=[\'3p\',\'ol\',\'li\',\'2Y\',\'5P\',\'dl\',\'dt\',\'dd\'];$.1B(q.R.1Z,$.1d(C(i,s){if($.3t(s.1p.3e(),9y)!=-1)F;E $1W=q.L.4I(s,Y);if(5G){if(5G==\'3m\')q.R.3m($1W);N if(5G==\'1u\')q.R.1u($1W);N if(5G==\'1U\')q.R.kt($1W)}N q.R.3m($1W);if(Y!=\'p\'&&Y!=\'29\')$1W.1h(\'1L\').1u();if(q.R.8I)q.L.4Z($1W);if(Y==\'p\'||q.R.d2)$1W.1h(\'p\').26().3Y();if(1s q.R.1m==\'1y\'&&1s q.R.1E==\'1y\'){$1W.1K(\'1G\').1K(\'1o\')}},q))}}},kt:C($el){if(q.R.b1){$el.1K(\'1G\').1K(\'1o\')}if(q.R.1m==\'1G\'){$el.2f(q.R.1E);F}N if(q.R.1m==\'1c\'||q.R.1m==\'1f\'){$el.1c(q.R.1E.1w,q.R.1E.1E);F}},3m:C($el){if(q.R.b1){$el.1K(\'1G\').1K(\'1o\')}if(q.R.1m==\'1G\'){$el.7O(q.R.1E);F}N if(q.R.1m==\'1c\'||q.R.1m==\'1f\'){if($el.1c(q.R.1E.1w)==q.R.1E.1E){$el.1K(q.R.1E.1w)}N{$el.1c(q.R.1E.1w,q.R.1E.1E)}F}N{$el.1K(\'1o 1G\');F}},1u:C($el){$el.2S(q.R.1E)},aF:C(){E R=$(q.R.1Z[0]).2q(\'3p, ol\',q.$T[0]);$(R).1h(\'3p, ol\').26().3Y();$(R).1h(\'li\').1F($(\'<br>\')).26().3Y();E $el=q.L.4I(R,\'29\');q.R.3m($el)},kS:C(Y){1l.3Z(\'7p\');1l.3Z(\'9S\',O,Y);q.1x.4r();q.$T.1h(\'p:kh\').1u();E 1W=q.J.4a();if(Y!=\'p\'){$(1W).1h(\'1L\').1u()}if(!q.G.1M){q.R.3m($(1W))}q.$T.1h(\'3p, ol, 6O, 29, p\').1B($.1d(q.L.4f,q));if(q.G.1M&&Y==\'p\'){q.L.6i(1W)}},aE:C(Y){if(q.R.69==\'8D\'||q.R.69==\'8N\'){if(Y==\'29\'){q.R.aF()}N{F}}E 1W=q.J.5Z(Y);if(1W===O)F;E $1W=$(1W);q.R.d0($1W);E $jR=$1W.1h(q.G.8q.3c(\',\')+\', 2Y, 3W, e7, ee, e3, 5P, 6O\');$jR.26().3Y();if(Y!=\'p\'&&Y!=\'29\')$1W.1h(\'1L\').1u();$.1B(q.R.1Z,$.1d(q.L.4f,q));$1W.1F(q.J.6Q(2));if(!q.G.1M){q.R.3m($1W)}q.$T.1h(\'3p, ol, 6O, 29, p\').1B($.1d(q.L.4f,q));$1W.1h(\'29:kh\').1u();if(q.R.8I){q.L.4Z($1W)}if(q.G.1M&&Y==\'p\'){q.L.6i($1W)}if(q.G.1M){E $1N=$1W.1N().1N();if($1N.9B()!=0&&$1N[0].1p===\'58\'){$1N.1u()}}},d0:C($1W){if($1W.2q(\'3W\',q.$T[0]).12===0)F;if($1W.2q(\'6O\',q.$T[0]).12===0)$1W.5Z(\'<6O>\');if($1W.2q(\'2Y\',q.$T[0]).12===0&&$1W.2q(\'5P\').12===0){$1W.5Z(\'<2Y>\')}},gv:C(1w,1E){E 1Z=q.J.3X();$(1Z).1K(\'1f-\'+1w);q.1e.1S()},mZ:C(1w,1E){E 1Z=q.J.3X();$(1Z).1c(\'1f-\'+1w,1E);q.1e.1S()},mY:C(1w,1E){E 1Z=q.J.3X();$.1B(1Z,C(){if($(q).1c(\'1f-\'+1w)){$(q).1K(\'1f-\'+1w)}N{$(q).1c(\'1f-\'+1w,1E)}})},1K:C(1c,1E){E 1Z=q.J.3X();$(1Z).1K(1c);q.1e.1S()},mX:C(1c,1E){E 1Z=q.J.3X();$(1Z).1c(1c,1E);q.1e.1S()},mW:C(1c,1E){E 1Z=q.J.3X();$.1B(1Z,C(){if($(q).1c(1w)){$(q).1K(1w)}N{$(q).1c(1w,1E)}})},2S:C(3E){E 1Z=q.J.3X();$(1Z).2S(3E);q.L.5r(1Z,\'1G\');q.1e.1S()},8g:C(3E){E 1Z=q.J.3X();$(1Z).2f(3E);q.1e.1S()},7O:C(3E){E 1Z=q.J.3X();$(1Z).7O(3E);q.1e.1S()}}},25:C(){F{1U:C(1m){if(1s 1m==\'1y\'||1m==\'9l\'){q.25.kV()}N{q.25.kM()}},kV:C(){q.J.3o();q.G.25.2N(q.$T.B());q.J.3d()},kM:C(){q.J.3o();q.G.9k.2N(q.$T.B());q.J.3d()},kd:C(){q.$T.B(q.G.25.kW())},kj:C(){q.$T.B(q.G.9k.kW())},cQ:C(){q.G.25.2N(q.$T.B())},9l:C(){if(q.G.25.12===0)F;q.25.1U(\'a9\');q.25.kd();q.J.3d();3A($.1d(q.1R.2R,q),50)},a9:C(){if(q.G.9k.12===0)F;q.25.1U(\'9l\');q.25.kj();q.J.3d();3A($.1d(q.1R.2R,q),50)}}},2o:C(){F{ki:C(){q.2o.jW();q.2o.kz();q.2o.kK();q.2o.kF();q.2o.k5()},aa:C(){F(q.$2j[0].1p===\'mu\')},jW:C(){q.$2Q=$(\'<1i 1G="I-2Q" 9c="mq" />\')},k7:C(){q.$2v=$(\'<2v />\').1c(\'1w\',q.2o.ku())},ku:C(){F((1s(1w)==\'1y\'))?\'d1-\'+q.2G:q.$2j.1c(\'id\')},kz:C(){E 1C=(q.2o.aa())?\'2K\':\'B\';q.d1=$.3k(q.$2j[1C]())},kF:C(){q.$T.1c({\'5d\':1q,\'kU\':q.G.d7})},kK:C(){E 1C=(q.2o.aa())?\'kk\':\'ke\';q.2o[1C]()},kk:C(){q.$T=$(\'<1i />\');q.$2v=q.$2j;q.$2Q.jX(q.$2j).1F(q.$T).1F(q.$2j);q.$T.2f(\'I-T\');q.$2j.3v()},ke:C(){q.$T=q.$2j;q.2o.k7();q.$2Q.jX(q.$T).1F(q.$T).1F(q.$2v);q.$T.2f(\'I-T\');q.$2v.3v()},k5:C(){q.1e.1U(q.d1);q.2o.kO();q.2o.kH();if(q.G.6r)F;3A($.1d(q.1e.dJ,q),bt)},kH:C(){q.2o.eD();q.2o.ex();q.2o.fD();q.2o.fR();if(q.G.1A){q.G.1A=q.1A.3Q();q.1A.2o()}q.1a.iW();q.2o.8r();3A($.1d(q.1R.2R,q),4);q.1X.2u(\'3Q\')},kO:C(){$(q.$2v).1c(\'kU\',q.G.d7);if(q.G.1M)q.$T.2f(\'I-1M\');if(q.G.6S)q.$T.1c(\'6S\',q.G.6S);if(q.G.aG)q.$T.1O(\'aG\',q.G.aG);if(q.G.aI)q.$T.1O(\'aI\',q.G.aI)},fg:C(e){e.2w();if(!q.G.fB||!q.G.fF)F;E 5R=e.bG.5R;q.1v.kQ(5R[0],e)},ft:C(e){q.1e.1S();3A(q.1x.4r,1);q.1X.2u(\'57\',e)},fD:C(){q.$T.on(\'57.I\',$.1d(C(e){e=e.7T||e;if(3l.b6===1y||!e.bG)F 1q;if(e.bG.5R.12===0){F q.2o.ft(e)}N{q.2o.fg(e)}3A(q.1x.4r,1);q.1X.2u(\'57\',e)},q));q.$T.on(\'2y.I\',$.1d(C(e){E 8e=q.1X.7g();E 1m=(8e==\'2y\'||8e==\'4W\')?O:\'2y\';q.1X.9K(1m);q.L.8U();q.1X.2u(\'2y\',e)},q));q.$T.on(\'5C.I\',$.1d(q.5C.3Q,q));q.$T.on(\'l4.I\',$.1d(q.1e.1S,q));q.$T.on(\'1D.I\',$.1d(q.1D.3Q,q));q.$T.on(\'2s.I\',$.1d(q.2s.3Q,q));if($.5k(q.G.fo)){q.$2v.on(\'1D.I-2v\',$.1d(q.G.fo,q))}if($.5k(q.G.fZ)){q.$2v.on(\'2s.I-2v\',$.1d(q.G.fZ,q))}if($.5k(q.G.fW)){q.$T.on(\'2n.I\',$.1d(q.G.fW,q))}$(1l).on(\'6R.I.\'+q.2G,$.1d(C(e){q.8h=e.1Q},q));q.$T.on(\'fI.I\',$.1d(C(e){if(q.2b)F;if(q.7B)F;if(!q.2o.fO())F;q.L.8U();if($.5k(q.G.mr))q.1X.2u(\'fI\',e)},q))},fO:C(){if(q.8h===1q)F 1q;E $el=$(q.8h);F(!$el.3i(\'I-1A, I-1n\')&&!$el.is(\'#I-1a\')&&$el.dL(\'.I-1A, .I-1n, #I-1a\').12===0)},fR:C(){if(q.2z.aD()){q.2z.30()}q.3f.9Q();if(q.G.2n)3A(q.2n.2W,88);if(q.G.fP)3A(q.2n.3P,88)},8r:C(){if(!q.G.8r)F;$.1B(q.G.8r,$.1d(C(i,s){E 1C=(1s df!==\'1y\'&&1s df[s]!==\'1y\')?df:47.fn;if(!$.5k(1C[s])){F}q[s]=1C[s]();E 5X=q.dg(q[s]);E 2p=5X.12;2B(E z=0;z<2p;z++){q[s][5X[z]]=q[s][5X[z]].aH(q)}if($.5k(q[s].3Q)){q[s].3Q()}},q))},eD:C(){if(!q.L.1P(\'4b\'))F;52{1l.3Z(\'lZ\',O,O);1l.3Z(\'lN\',O,O)}51(e){}},ex:C(){if(!q.L.1P(\'2E\'))F;1l.3Z("lS",O,O)}}},1t:C(){F{2o:C(2g,2X){E $1t=$(\'<a 2k="#" 1G="3J-8R 3J-\'+2g+\'" 3T="\'+2g+\'" />\').1c({\'9c\':\'1t\',\'4K-2L\':2X.1J,\'6S\':\'-1\'});if(2X.1C||2X.4A||2X.1n){q.1t.eu($1t,2g,2X)}if(2X.1n){$1t.2f(\'I-1A-V-1n\').1c(\'4K-eY\',1q);E $1n=$(\'<1i 1G="I-1n I-1n-\'+q.2G+\' I-1n-2Q-\'+2g+\'" 1o="6N: 5p;">\');$1t.1f(\'1n\',$1n);q.1n.2o(2g,$1n,2X.1n)}if(q.L.7b()){q.1t.et($1t,2g,2X.1J)}F $1t},eu:C($1t,2g,2X){$1t.on(\'5H 2y\',$.1d(C(e){if($1t.3i(\'I-1t-7o\'))F O;E 1m=\'1C\';E 2A=2X.1C;if(2X.4A){1m=\'4A\';2A=2X.4A}N if(2X.1n){1m=\'1n\';2A=O}q.1t.ac(e,2g,1m,2A)},q))},et:C($1t,1w,1J){E $3q=$(\'<1j>\').2f(\'I-1A-3q I-1A-3q-\'+q.2G+\' I-1A-3q-\'+1w).3v().B(1J);$3q.aU(\'31\');$1t.on(\'ay\',C(){if($(q).3i(\'I-1t-7o\'))F;E 3s=$1t.2I();$3q.2O();$3q.1O({2U:(3s.2U+$1t.6c())+\'px\',2c:(3s.2c+$1t.7P()/2-$3q.7P()/2)+\'px\'})});$1t.on(\'az\',C(){$3q.3v()})},ac:C(e,2g,1m,2A){q.1t.mj=q.1V.ar();e.2w();if(q.L.1P(\'2E\'))e.8l=O;if(1m==\'4A\')q.28.30(2A);N if(1m==\'1n\')q.1n.2O(e,2g);N q.1t.ep(e,2A,2g)},ep:C(e,2A,2g){E 1C;q.8h=1q;if($.5k(2A))2A.6e(q,2g);N if(2A.3N(/\\./)!=\'-1\'){1C=2A.4o(\'.\');if(1s q[1C[0]]==\'1y\')F;q[1C[0]][1C[1]](2g)}N q[2A](2g);q.1R.4i(e,2g)},1b:C(1k){F q.$1A.1h(\'a.3J-\'+1k)},9q:C(1k){q.1t.1b(1k).2f(\'I-8A\')},ge:C(1k){q.1t.1b(1k).2S(\'I-8A\')},cj:C(1k){if(1s 1k===\'1y\'){q.$1A.1h(\'a.3J-8R\').2S(\'I-8A\')}N{q.$1A.1h(\'a.3J-8R\').6h(\'.3J-\'+1k).2S(\'I-8A\')}},gf:C(){q.$1A.1h(\'a.3J-8R\').6h(\'a.3J-B, a.3J-fe\').2S(\'I-1t-7o\')},gT:C(){q.$1A.1h(\'a.3J-8R\').6h(\'a.3J-B, a.3J-fe\').2f(\'I-1t-7o\')},mm:C(1k,av){q.1t.1b(1k).2f(\'3J-\'+av)},mf:C(1k,av){q.1t.1b(1k).2S(\'3J-\'+av)},m7:C(1k,1w){E $1t=q.1t.1b(1k);$1t.2S(\'I-21-M\').2f(\'fa-I-21\');$1t.B(\'<i 1G="fa \'+1w+\'"></i>\')},cB:C($21,2A){if($21=="25")F;E 1m=(2A==\'1n\')?\'1n\':\'1C\';E 1k=$21.1c(\'3T\');$21.on(\'5H 2y\',$.1d(C(e){if($21.3i(\'I-1t-7o\'))F O;q.1t.ac(e,1k,1m,2A)},q))},cc:C($21,1n){$21.2f(\'I-1A-V-1n\').1c(\'4K-eY\',1q);E 1k=$21.1c(\'3T\');q.1t.cB($21,\'1n\');E $1n=$(\'<1i 1G="I-1n I-1n-\'+q.2G+\' I-1n-2Q-\'+1k+\'" 1o="6N: 5p;">\');$21.1f(\'1n\',$1n);if(1n)q.1n.2o(1k,$1n,1n);F $1n},cQ:C(1k,1J){if(!q.G.1A)F;if(q.1t.9v(1k))F"25";E 21=q.1t.2o(1k,{1J:1J});21.2f(\'I-21-M\');q.$1A.1F($(\'<li>\').1F(21));F 21},ma:C(1k,1J){if(!q.G.1A)F;if(q.1t.9v(1k))F"25";E 21=q.1t.2o(1k,{1J:1J});21.2f(\'I-21-M\');q.$1A.6t($(\'<li>\').1F(21));F 21},mt:C(fb,1k,1J){if(!q.G.1A)F;if(q.1t.9v(1k))F"25";E 21=q.1t.2o(1k,{1J:1J});21.2f(\'I-21-M\');E $21=q.1t.1b(fb);if($21.12!==0)$21.1r().3F($(\'<li>\').1F(21));N q.$1A.1F($(\'<li>\').1F(21));F 21},mb:C(f0,1k,1J){if(!q.G.1A)F;if(q.1t.9v(1k))F"25";E 21=q.1t.2o(1k,{1J:1J});21.2f(\'I-21-M\');E $21=q.1t.1b(f0);if($21.12!==0)$21.1r().a6($(\'<li>\').1F(21));N q.$1A.1F($(\'<li>\').1F(21));F 21},1u:C(1k){q.1t.1b(1k).1u()},9v:C(1k){F(1k=="9l"||1k=="a9")&&!q.L.7b()}}},1V:C(){F{2W:C(Q){if(!q.L.6X(Q)){E 3g=q.L.bH();$(Q).6t(3g);q.1V.3P(3g)}N{q.1V.1U(Q,0,Q,0)}},3P:C(Q){Q=Q[0]||Q;if(Q.eR.a8==1){F q.1V.54(Q.eR)}q.1V.1U(Q,1,Q,1)},1U:C(4P,eL,77,hs){4P=4P[0]||4P;77=77[0]||77;if(q.L.7J(4P.1p)&&4P.3x===\'\'){4P.3x=q.G.6o}if(4P.1p==\'58\'&&q.G.1M===O){E 1r=$(q.G.5S)[0];$(4P).2t(1r);4P=1r;77=4P}q.J.1b();52{q.14.2W(4P,eL);q.14.3P(77,hs)}51(e){}q.J.4l()},54:C(Q){52{E Y=$(Q)[0].1p;if(Y!=\'58\'&&!q.L.6X(Q)){E 3g=q.L.bH();$(Q).3F(3g);q.1V.3P(3g)}N{if(Y!=\'58\'&&q.L.1P(\'2E\')){q.1V.2W($(Q).1N())}N{q.1V.d9(Q,\'3F\')}}}51(e){E 3g=q.L.bH();$(Q).3F(3g);q.1V.3P(3g)}},bT:C(Q){if(q.L.6X(Q)){q.1V.3P($(Q).4G())}N{q.1V.d9(Q,\'a6\')}},d9:C(Q,1m){if(!q.L.1P(\'2E\'))q.$T.2n();Q=Q[0]||Q;q.J.1b();if(1m==\'3F\'){52{q.14.9I(Q);q.14.mn(Q)}51(e){}}N{52{q.14.mk(Q);q.14.ks(Q)}51(e){}}q.14.43(O);q.J.4l()},b4:C(Q){Q=Q[0]||Q;q.J.1b();E at=q.14.7S();at.9j(Q);at.3P(q.14.bQ,q.14.bO);F $.3k(at.4y()).12},ar:C(){E 2I=0;E 2T=3l.4D();if(2T.7A>0){E 14=3l.4D().6l(0);E aJ=14.7S();aJ.9j(q.$T[0]);aJ.3P(14.bQ,14.bO);2I=aJ.4y().12}F 2I},eh:C(2b,2h){if(1s 2h==\'1y\')2h=2b;if(!q.2n.dO())q.2n.2W();E 2T=q.J.1b();E Q,2I=0;E hn=1l.mh(q.$T[0],mi.lR,4e,4e);56(Q==hn.lQ()){2I+=Q.5O.12;if(2I>2b){q.14.2W(Q,Q.5O.12+2b-2I);2b=lP}if(2I>=2h){q.14.3P(Q,Q.5O.12+2h-2I);6n}}q.14.43(O);q.J.4l()},lO:C(2b,2h){q.1V.eh(2b,2h)},m2:C(){F q.1V.ar()}}},1x:C(){F{gH:C(B){B=B.K(/<3V(.*?[^>]?)>([\\w\\W]*?)<\\/3V>/gi,\'<2F 1G="I-3V-Y" 1o="6N: 5p;" $1>$2</2F>\');B=B.K(/\\$/g,\'$\');B=B.K(/<a 2k="(.*?[^>]?)®(.*?[^>]?)">/gi,\'<a 2k="$1&lW$2">\');if(q.G.5Q)B=q.1x.5Q(B);if(q.G.1M)B=q.1x.8C(B);B=q.1x.cT(B);E $1i=$(\'<1i>\');$1i.B(B);E da=$1i.1h(\'3R[1o]\');if(da.12!==0){da.2t(C(){E $el=$(q);E $1j=$(\'<1j>\').1c(\'1o\',$el.1c(\'1o\'));F $1j.1F($el.26())});B=$1i.B()}$1i.1u();B=B.K(/<3R(.*?[^<])>/gi,\'\');B=B.K(/<\\/3R>/gi,\'\');B=q.1I.2R(B);if(q.G.2V)B=q.2V.2R(B);B=q.1x.7R(B);B=q.1x.cU(B);B=B.K(/&9o;/g,\'&\');F B},9R:C(B){B=B.K(/\\6g/g,\'\');B=B.K(/	T;/gi,\'\');if(q.G.hj){B=B.K(/&5s;/gi,\' \')}if(B.3N(/^<p>(||\\s||<br\\s?\\/?>||&5s;)<\\/p>$/i)!=-1){F\'\'}B=B.K(/<2F 1G="I-3V-Y" 1o="6N: 5p;"(.*?[^>]?)>([\\w\\W]*?)<\\/2F>/gi,\'<3V$1>$2</3V>\');B=q.1x.gG(B);E hZ={\'\\mo\':\'∓\',\'\\mQ\':\'&mR;\',\'\\mK\':\'&mL;\',\'\\mM\':\'&n0;\',\'\\mU\':\'&mV;\'};$.1B(hZ,C(i,s){B=B.K(2a 2l(i,\'g\'),s)});if(q.L.1P(\'4b\')){B=B.K(/<br\\s?\\/?>$/gi,\'\')}B=B.K(2a 2l(\'<br\\\\s?/?></li>\',\'gi\'),\'</li>\');B=B.K(2a 2l(\'</li><br\\\\s?/?>\',\'gi\'),\'</li>\');B=B.K(/<(.*?)3T="\\s*?"(.*?[^>]?)>/gi,\'<$1$2">\');B=B.K(/<(.*?)1o="\\s*?"(.*?[^>]?)>/gi,\'<$1$2">\');B=B.K(/="">/gi,\'>\');B=B.K(/""">/gi,\'">\');B=B.K(/"">/gi,\'">\');B=B.K(/<1i(.*?[^>]) 1f-8b="I"(.*?[^>])>/gi,\'<1i$1$2>\');B=B.K(/<(.*?) 1f-3H="I"(.*?[^>])>/gi,\'<$1$2>\');E $1i=$("<1i/>").B($.dQ(B,1l,1q));$1i.1h("1j").1K("3T");$1i.1h(\'2F .I-7s-3g\').1B(C(){$(q).26().3Y()});B=$1i.B();B=B.K(/<1L(.*?[^>])3T="(.*?[^>])"(.*?[^>])>/gi,\'<1L$1$3>\');B=B.K(/<1j 1G="I-7s-3g">(.*?)<\\/1j>/gi,\'$1\');B=B.K(/ 1f-3o-2i="(.*?[^>])"/gi,\'\');B=B.K(/<1j(.*?)id="I-M-2Q"(.*?[^>])>([\\w\\W]*?)<1L(.*?)><\\/1j>/gi,\'$3<1L$4>\');B=B.K(/<1j(.*?)id="I-M-8f"(.*?[^>])>(.*?)<\\/1j>/gi,\'\');B=B.K(/<1j(.*?)id="I-M-5l"(.*?[^>])>(.*?)<\\/1j>/gi,\'\');B=B.K(/<3R(.*?[^<])>/gi,\'\');B=B.K(/<\\/3R>/gi,\'\');B=q.1I.2R(B);if(q.G.hR){B=B.K(/<a(.*?)3T="hG"(.*?[^>])>/gi,\'<a$1$2>\');B=B.K(/<a(.*?[^>])>/gi,\'<a$1 3T="hG">\')}B=B.K(/\\mv-I-(Y|1G|1o)="(.*?[^>])"/gi,\'\');B=B.K(2a 2l(\'<(.*?) 1f-3H="I"(.*?[^>])>\',\'gi\'),\'<$1$2>\');B=B.K(2a 2l(\'<(.*?) 1f-3H="I">\',\'gi\'),\'<$1>\');B=B.K(/&9o;/g,\'&\');F B},8y:C(B,8i){B=$.3k(B);B=B.K(/\\$/g,\'$\');B=B.K(/<1j 1G="s[0-9]">/gi,\'<1j>\');B=B.K(/<1j 1G="hN-mx-3g">&5s;<\\/1j>/gi,\' \');B=B.K(/<1j 1G="hN-5I-1j"[^>]*>\\t<\\/1j>/gi,\'\\t\');B=B.K(/<1j[^>]*>(\\s|&5s;)<\\/1j>/gi,\' \');if(q.G.hL){F q.1x.aj(B)}if(!q.L.9w()&&1s 8i==\'1y\'){if(q.L.4S([\'hM\',\'A\'])){F q.1x.aj(B,O)}if(q.L.4S(\'8o\')){B=B.K(/â€/g,\'"\');B=B.K(/“/g,\'"\');B=B.K(/‘/g,\'\\\'\');B=B.K(/’/g,\'\\\'\');F q.1x.gK(B)}if(q.L.4S([\'aK\',\'dK\',\'di\',\'cS\',\'cR\',\'cI\',\'cH\'])){B=q.1x.gL(B);if(!q.L.1P(\'2E\')){E R=q.J.4a();if(R&&R.1p==\'P\'){B=B.K(/<1L(.*?)>/gi,\'<p><1L$1></p>\')}}F B}if(q.L.4S([\'6F\'])){B=q.1x.b0(B,\'2Y\');if(q.G.1M)B=q.1x.8C(B);B=q.1x.gF(B);F B}if(q.L.4S([\'5v\'])){F q.1x.b0(B,\'li\')}}B=q.1x.gP(B,8i);if(!q.1x.9D){if(q.G.1M)B=q.1x.8C(B);if(q.G.5Q)B=q.1x.5Q(B);B=q.1x.cT(B)}B=q.1x.ha(B);B=q.1x.gb(B);B=q.1x.b0(B,\'gB\');if(!q.1x.9D&&q.G.2V){B=q.2V.2R(B)}B=q.1x.gO(B);B=q.1x.gZ(B);B=q.1x.h0(B);B=q.1x.cU(B);F B},ha:C(B){B=B.K(/<!--[\\s\\S]*?-->/gi,\'\');B=B.K(/<1o[^>]*>[\\s\\S]*?<\\/1o>/gi,\'\');B=B.K(/<o\\:p[^>]*>[\\s\\S]*?<\\/o\\:p>/gi,\'\');if(B.1T(/1G="?gd|1o="[^"]*\\gr-|1o=\'[^\'\']*\\gr-|w:ms/i)){B=B.K(/<!--[\\s\\S]+?-->/gi,\'\');B=B.K(/<(!|3V[^>]*>.*?<\\/3V(?=[>\\s])|\\/?(\\?my(:\\w+)?|1L|5h|V|1o|\\w:\\w+)(?=[\\s\\/>]))[^>]*>/gi,\'\');B=B.K(/<(\\/?)s>/gi,"<$mz>");B=B.K(/ /gi,\' \');B=B.K(/<1j\\s+1o\\s*=\\s*"\\s*aY-mF\\s*:\\s*mG\\s*;?\\s*"\\s*>([\\s\\9Z]*)<\\/1j>/gi,C(5f,aW){F(aW.12>0)?aW.K(/./," ").ct(8d.mH(aW.12/2)).4o("").3c("\\9Z"):\'\'});B=q.1x.gQ(B);B=B.K(/<1L(.*?)v:mA=(.*?)>/gi,\'\');B=B.K(/4t="22\\:\\/\\/(.*?)"/,\'4t=""\');E $1i=$("<1i/>").B(B);E 5T=O;E 8V=1;E cY=[];$1i.1h("p[1o]").1B(C(){E 3M=$(q).1c(\'1o\').1T(/aY\\-2e\\:l([0-9]+)\\n1([0-9]+)/);if(3M){E 5V=5L(3M[1]);E 5W=5L(3M[2]);E cX=$(q).B().1T(/^[\\w]+\\./)?"ol":"3p";E $li=$("<li/>").B($(q).B());$li.B($li.B().K(/^([\\w\\.]+)</,\'<\'));$li.1h("1j:3I").1u();if(5W==1&&$.3t(5V,cY)==-1){E $2e=$("<"+cX+"/>").1c({"1f-7h":5W,"1f-2e":5V}).B($li);$(q).2t($2e);5T=5V;cY.2N(5V)}N{if(5W>8V){E $aV=$1i.1h(\'[1f-7h="\'+8V+\'"][1f-2e="\'+5T+\'"]\');E $5T=$aV;2B(E i=8V;i<5W;i++){$2e=$("<"+cX+"/>");$2e.aU($5T.1h("li").2Z());$5T=$2e}$5T.1c({"1f-7h":5W,"1f-2e":5V}).B($li)}N{E $aV=$1i.1h(\'[1f-7h="\'+5W+\'"][1f-2e="\'+5V+\'"]\').2Z();$aV.1F($li)}8V=5W;5T=5V;$(q).1u()}}});$1i.1h(\'[1f-7h][1f-2e]\').1K(\'1f-7h 1f-2e\');B=$1i.B();B=B.K(/·/g,\'\');B=B.K(/<p 1G="gd(.*?)"/gi,\'<p\');B=B.K(/ 1G=\\"(aY[^\\"]*)\\"/gi,"");B=B.K(/ 1G=(aY\\w+)/gi,"");B=B.K(/<o:p(.*?)>([\\w\\W]*?)<\\/o:p>/gi,\'$2\');B=B.K(/\\n/g,\' \');B=B.K(/<p>\\n?<li>/gi,\'<li>\')}F B},gb:C(B){B=B.K(/<b\\l6="g9-4E-2r(.*?)">([\\w\\W]*?)<\\/b>/gi,"$2");B=B.K(/<b(.*?)id="l5-g9-l9(.*?)">([\\w\\W]*?)<\\/b>/gi,"$3");B=B.K(/<1j[^>]*(3R-1o: 4m; 3R-7I: 4n|3R-7I: 4n; 3R-1o: 4m)[^>]*>/gi,\'<1j 1o="3R-7I: 4n;"><1j 1o="3R-1o: 4m;">\');B=B.K(/<1j[^>]*3R-1o: 4m[^>]*>/gi,\'<1j 1o="3R-1o: 4m;">\');B=B.K(/<1j[^>]*3R-7I: 4n[^>]*>/gi,\'<1j 1o="3R-7I: 4n;">\');B=B.K(/<1j[^>]*1g-7a: 5x[^>]*>/gi,\'<1j 1o="1g-7a: 5x;">\');B=B.K(/<1L>/gi,\'\');B=B.K(/\\n{3,}/gi,\'\\n\');B=B.K(/<3R(.*?)>([\\w\\W]*?)<\\/3R>/gi,\'$2\');B=B.K(/<p><p>/gi,\'<p>\');B=B.K(/<\\/p><\\/p>/gi,\'</p>\');B=B.K(/<li>(\\s*|\\t*|\\n*)<p>/gi,\'<li>\');B=B.K(/<\\/p>(\\s*|\\t*|\\n*)<\\/li>/gi,\'</li>\');B=B.K(/<\\/p>\\s<p/gi,\'<\\/p><p\');B=B.K(/<1L 4t="7q-lz-2i\\:\\/\\/(.*?)"(.*?)>/gi,\'\');B=B.K(/<p>•([\\w\\W]*?)<\\/p>/gi,\'<li>$1</li>\');if(q.L.1P(\'4b\')){B=B.K(/<br\\s?\\/?>$/gi,\'\')}F B},b0:C(B,1m){E 2d=[\'1j\',\'a\',\'2F\',\'29\',\'9f\',\'em\',\'5i\',\'1e\',\'aS\',\'6A\',\'du\',\'8S\',\'E\',\'aN\',\'cL\',\'7Q\',\'7l\',\'b\',\'i\',\'u\',\'4h\',\'ol\',\'3p\',\'li\',\'dl\',\'dt\',\'dd\',\'p\',\'br\',\'6Y\',\'8Y\',\'4R\',\'7i\',\'8J\',\'41\',\'1L\',\'3W\',\'2Y\',\'5P\',\'6O\',\'ee\',\'e3\',\'e7\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'];E cK=O;E cN=[[\'a\',\'*\'],[\'1L\',[\'4t\',\'80\']],[\'1j\',[\'1G\',\'3T\',\'1f-3H\']],[\'4R\',\'*\'],[\'6Y\',\'*\'],[\'8Y\',\'*\'],[\'7i\',\'*\'],[\'41\',\'*\'],[\'8J\',\'*\'],[\'4E\',\'*\']];if(1m==\'gB\'){cK=[\'p\',\'1j\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'];cN=[[\'3W\',\'1G\'],[\'2Y\',[\'lw\',\'la\']],[\'a\',\'*\'],[\'1L\',[\'4t\',\'80\',\'1f-I-8m-M\']],[\'1j\',[\'1G\',\'3T\',\'1f-3H\']],[\'4R\',\'*\'],[\'6Y\',\'*\'],[\'8Y\',\'*\'],[\'7i\',\'*\'],[\'41\',\'*\'],[\'8J\',\'*\'],[\'4E\',\'*\']]}N if(1m==\'2Y\'){2d=[\'3p\',\'ol\',\'li\',\'1j\',\'a\',\'9f\',\'em\',\'5i\',\'1e\',\'aS\',\'6A\',\'8S\',\'E\',\'aN\',\'cL\',\'7Q\',\'7l\',\'b\',\'i\',\'u\',\'4h\',\'ol\',\'3p\',\'li\',\'dl\',\'dt\',\'dd\',\'br\',\'4R\',\'6Y\',\'8Y\',\'7i\',\'8J\',\'41\',\'1L\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\']}N if(1m==\'li\'){2d=[\'3p\',\'ol\',\'li\',\'1j\',\'a\',\'9f\',\'em\',\'5i\',\'1e\',\'aS\',\'6A\',\'8S\',\'E\',\'aN\',\'cL\',\'7Q\',\'7l\',\'b\',\'i\',\'u\',\'4h\',\'br\',\'4R\',\'6Y\',\'8Y\',\'7i\',\'8J\',\'41\',\'1L\']}E 44={4c:(q.G.4c)?q.G.4c:O,4z:(q.G.4z)?q.G.4z:2d,6G:1q,lg:1q,1K:(q.G.1K)?q.G.1K:O,4T:(q.G.4T)?q.G.4T:cN,4f:cK};F q.1I.2R(B,44)},h0:C(B){B=B.K(/<(p|h[1-6])>(|\\s|\\n|\\t|<br\\s?\\/?>)<\\/(p|h[1-6])>/gi,\'\');if(!q.G.1M)B=B.K(/<br>$/i,\'\');F B},gZ:C(B){B=B.K(/<1j>(.*?)<\\/1j>/gi,\'$1\');B=B.K(/<1j[^>]*>\\s|&5s;<\\/1j>/gi,\' \');F B},gQ:C(B){if(!q.L.1P(\'2E\'))F B;E 5q=$.3k(B);if(5q.3N(/^<a(.*?)>(.*?)<\\/a>$/i)===0){B=B.K(/^<a(.*?)>(.*?)<\\/a>$/i,"$2")}F B},gP:C(B,8i){q.1x.9D=O;if(!q.L.9w()&&1s 8i==\'1y\'){E 1Z=q.G.8q.3c(\'|\').K(\'P|\',\'\').K(\'89|\',\'\');E gD=B.1T(2a 2l(\'</(\'+1Z+\')>\',\'gi\'));E aQ=B.1T(/<\\/(p|1i)>/gi);if(!gD&&(aQ===4e||(aQ&&aQ.12<=1))){E gI=B.1T(/<br\\s?\\/?>/gi);if(!gI){q.1x.9D=1q;B=B.K(/<\\/?(p|1i)(.*?)>/gi,\'\')}}}F B},lq:C(3D,5J){5J=(((5J||\'\')+\'\').3e().1T(/<[a-z][a-7t-9]*>/g)||[]).3c(\'\');E 2d=/<\\/?([a-z][a-7t-9]*)\\b[^>]*>/gi;F 3D.K(2d,C($0,$1){F 5J.4Q(\'<\'+$1.3e()+\'>\')>-1?$0:\'\'})},lr:C(B){B=q.1x.gJ(B);B=q.1x.gN(B);B=q.1x.gM(B);F B},gJ:C(B){E 2F=B.1T(/<2F(.*?)>([\\w\\W]*?)<\\/2F>/gi);if(2F!==4e){$.1B(2F,$.1d(C(i,s){E 2C=s.1T(/<2F(.*?)>([\\w\\W]*?)<\\/2F>/i);2C[2]=2C[2].K(/<br\\s?\\/?>/g,\'\\n\');2C[2]=2C[2].K(/&5s;/g,\' \');if(q.G.6v){2C[2]=2C[2].K(/\\t/g,9F(q.G.6v+1).3c(\' \'))}2C[2]=q.1x.as(2C[2]);2C[2]=2C[2].K(/\\$/g,\'$\');B=B.K(s,\'<2F\'+2C[1]+\'>\'+2C[2]+\'</2F>\')},q))}F B},gN:C(B){E 1e=B.1T(/<1e(.*?)>([\\w\\W]*?)<\\/1e>/gi);if(1e!==4e){$.1B(1e,$.1d(C(i,s){E 2C=s.1T(/<1e(.*?)>([\\w\\W]*?)<\\/1e>/i);2C[2]=2C[2].K(/&5s;/g,\' \');2C[2]=q.1x.as(2C[2]);2C[2]=2C[2].K(/\\$/g,\'$\');B=B.K(s,\'<1e\'+2C[1]+\'>\'+2C[2]+\'</1e>\')},q))}F B},gM:C(B){B=B.K(/<1j id=&5N;J-2r-([0-9])&5N; 1G=&5N;I-J-2r&5N; 1f-3H=&5N;I&5N;>​<\\/1j>/g,\'<1j id="J-2r-$1" 1G="I-J-2r" 1f-3H="I">​</1j>\');F B},cG:C(B){B=B.K(/<br\\s?\\/?>|<\\/H[1-6]>|<\\/p>|<\\/1i>|<\\/li>|<\\/2Y>/gi,\'\\n\');E 5q=1l.3w(\'1i\');5q.3x=B;B=5q.ll||5q.lm;F $.3k(B)},aj:C(B,2V){B=q.1x.cG(B);B=B.K(/\\n/g,\'<br />\');if(q.G.2V&&1s 2V==\'1y\'&&!q.L.1P(\'4b\')){B=q.2V.2R(B)}F B},gK:C(B){B=B.K(/<1L(.*?) 1o="(.*?)"(.*?[^>])>/gi,\'<1L$1$3>\');B=B.K(/<1L(.*?)>/gi,\'<1L$1>\');B=q.1x.cG(B);if(q.G.6v){B=B.K(/\\t/g,9F(q.G.6v+1).3c(\' \'))}B=q.1x.as(B);F B},gL:C(B){B=B.K(/<1L(.*?)>/gi,\'[1L$1]\');B=B.K(/<([pY]*?)>/gi,\'\');B=B.K(/\\[1L(.*?)\\]/gi,\'<1L$1>\');F B},pG:C(B){B=B.K(/<a(.*?)2k="(.*?)"(.*?)>([\\w\\W]*?)<\\/a>/gi,\'[a 2k="$2"]$4[/a]\');B=B.K(/<1L(.*?)>/gi,\'[1L$1]\');B=B.K(/<(.*?)>/gi,\'\');B=B.K(/\\[a 2k="(.*?)"\\]([\\w\\W]*?)\\[\\/a\\]/gi,\'<a 2k="$1">$2</a>\');B=B.K(/\\[1L(.*?)\\]/gi,\'<1L$1>\');F B},as:C(5f){5f=6f(5f).K(/&9o;/g,\'&\').K(/</g,\'<\').K(/>/g,\'>\').K(/&5N;/g,\'"\');F 5f.K(/&/g,\'&9o;\').K(/</g,\'<\').K(/>/g,\'>\').K(/"/g,\'&5N;\')},gO:C(B){if(q.L.1P(\'2E\'))F B;E 1i=1l.3w(\'1i\');1i.3x=B;q.1x.cV($(1i));B=1i.3x;$(1i).1u();F B},4r:C(){if(q.L.1P(\'2E\'))F;q.1x.cV(q.$T);E cP=q.$T.1h(\'h1, h2, h3, h4, h5, h6\');cP.1h(\'1j\').1K(\'1o\');cP.1h(q.G.cW.3c(\', \')).1K(\'1o\');q.1e.1S()},cV:C($T){$T.1h(q.G.cW.3c(\', \')).1K(\'1o\');$T.1h(\'1j\').6h(\'[1f-3H="I"]\').1K(\'1o\');$T.1h(\'1j[1f-3H="I"], 1L[1f-3H="I"]\').1B(C(i,s){E $s=$(s);$s.1c(\'1o\',$s.1c(\'3T\'))})},pz:C(){},7R:C(B){if(q.L.1P(\'2E\'))F B;B=B.K(2a 2l(\'<1L(.*?[^>])>\',\'gi\'),\'<1L$1 1f-3H="I">\');B=B.K(2a 2l(\'<1j(.*?[^>])>\',\'gi\'),\'<1j$1 1f-3H="I">\');E 3M=B.1T(2a 2l(\'<(1j|1L)(.*?)1o="(.*?)"(.*?[^>])>\',\'gi\'));if(3M){E 2p=3M.12;2B(E i=0;i<2p;i++){52{E gE=3M[i].K(/1o="(.*?)"/i,\'1o="$1" 3T="$1"\');B=B.K(3M[i],gE)}51(e){}}}F B},cU:C(B){E $1i=$(\'<1i />\').B(B);E 2d=q.G.4N;2d.2N(\'1j\');$1i.1h(2d.3c(\',\')).1B(C(){E $el=$(q);E Y=q.1p.3e();$el.1c(\'1f-I-Y\',Y);if(Y==\'1j\'){if($el.1c(\'1o\'))$el.1c(\'1f-I-1o\',$el.1c(\'1o\'));N if($el.1c(\'1G\'))$el.1c(\'1f-I-1G\',$el.1c(\'1G\'))}});B=$1i.B();$1i.1u();F B},ap:C(){q.$T.1h(\'li\').1B(C(i,s){E $1N=$(s).1N();if($1N.12!==0&&($1N[0].1p==\'8D\'||$1N[0].1p==\'8N\')){$(s).1F($1N)}})},dH:C(B){B=B.K(/\\n/g,\'\');B=B.K(/[\\t]*/g,\'\');B=B.K(/\\n\\s*\\n/g,"\\n");B=B.K(/^[\\s\\n]*/g,\' \');B=B.K(/[\\s\\n]*$/g,\' \');B=B.K(/>\\s{2,}</g,\'> <\');B=B.K(/\\n\\n/g,"\\n");B=B.K(/\\6g/g,\'\');F B},5Q:C(B){if(q.G.1M){B=B.K(/<1i><br\\s?\\/?><\\/1i>/gi,\'<br />\');B=B.K(/<1i(.*?)>([\\w\\W]*?)<\\/1i>/gi,\'$2<br />\')}N{B=B.K(/<1i(.*?)>([\\w\\W]*?)<\\/1i>/gi,\'<p$1>$2</p>\')}B=B.K(/<1i(.*?[^>])>/gi,\'\');B=B.K(/<\\/1i>/gi,\'\');F B},gF:C(B){B=B.K(/<1i\\s(.*?)>/gi,\'<p>\');B=B.K(/<1i><br\\s?\\/?><\\/1i>/gi,\'<br /><br />\');B=B.K(/<1i>([\\w\\W]*?)<\\/1i>/gi,\'$1<br /><br />\');F B},8C:C(B){B=B.K(/<p\\s(.*?)>/gi,\'<p>\');B=B.K(/<p><br\\s?\\/?><\\/p>/gi,\'<br />\');B=B.K(/<p>([\\w\\W]*?)<\\/p>/gi,\'$1<br /><br />\');B=B.K(/(<br\\s?\\/?>){1,}\\n?<\\/29>/gi,\'</29>\');F B},cT:C(B){F B.K(/<64(.*?)>([\\w\\W]*?)<\\/64>/gi,\'<49$1 3T="I-64-Y">$2</49>\')},gG:C(B){F B.K(/<49(.*?) 3T="I-64-Y"(.*?)>([\\w\\W]*?)<\\/49>/gi,\'<64$1$2>$3</64>\')}}},1e:C(){F{1U:C(B){B=$.3k(B.4y());B=q.1x.gH(B);if(q.L.1P(\'2E\')){B=B.K(/<1j(.*?)id="J-2r-(1|2)"(.*?)><\\/1j>;/gi,\'\')}q.$T.B(B);q.1e.1S();if(B!==\'\')q.3f.1u();3A($.1d(q.25.cQ,q),15);if(q.2b===O)q.1R.2R()},1b:C(){E 1e=q.$2v.2K();if(q.G.5Q)1e=q.1x.5Q(1e);if(q.G.1M)1e=q.1x.8C(1e);1e=q.2H.1b(1e);F 1e},1S:C(){3A($.1d(q.1e.gY,q),10)},gY:C(){E B=q.$T.B();if(q.1e.dh&&q.1e.dh==B){F}q.1e.dh=B;B=q.1X.2u(\'pV\',B);B=q.1x.9R(B);q.$2v.2K(B);q.1X.2u(\'1S\',B);if(q.2b===O){q.1X.2u(\'kR\',B)}q.2b=O;if(q.3r.B==O){q.3r.B=q.1e.1b()}if(q.G.8n){q.$2v.1N(\'.3C\').1B(C(i,el){el.3C.gX(B)})}q.3r.h7();q.3r.9Q()},3m:C(){if(q.G.6r){q.1e.dJ()}N{q.1e.gU()}},dJ:C(){q.J.3o();q.1e.2I=q.1V.ar();E 6b=$(3l).3U();E 2J=q.$T.7P(),3n=q.$T.6c();q.$T.3v();E B=q.$2v.2K();q.gk=q.1x.dH(B);B=q.2H.1b(B);E 2b=0,2h=0;E $6W=$("<1i/>").1F($.dQ(q.1x.9R(q.$T.B()),1l,1q));E $a4=$6W.1h("1j.I-J-2r");if($a4.12>0){E a3=q.2H.1b($6W.B()).K(/&9o;/g,\'&\');if($a4.12==1){2b=q.L.bF(a3,$6W.1h("#J-2r-1").6j("7v"));2h=2b}N if($a4.12==2){2b=q.L.bF(a3,$6W.1h("#J-2r-1").6j("7v"));2h=q.L.bF(a3,$6W.1h("#J-2r-2").6j("7v"))-$6W.1h("#J-2r-1").6j("7v").4y().12}}q.J.8p();q.$2v.2K(B);if(q.G.8n){q.$2v.1N(\'.3C\').1B(C(i,el){$(el).2O();el.3C.gX(B);el.3C.pO(\'88%\',3n);el.3C.pP();if(2b==2h){el.3C.pQ(el.3C.7d(2b).3K,el.3C.7d(2h).ch)}N{el.3C.pv({3K:el.3C.7d(2b).3K,ch:el.3C.7d(2b).ch},{3K:el.3C.7d(2h).3K,ch:el.3C.7d(2h).ch})}el.3C.2n()})}N{q.$2v.3n(3n).2O().2n();q.$2v.on(\'1D.I-2v-gl\',q.1e.ga);$(3l).3U(6b);if(q.$2v[0].gR){q.$2v[0].gR(2b,2h)}q.$2v[0].3U=0}q.G.6r=O;q.1t.gT();q.1t.9q(\'B\');q.1X.2u(\'4E\',B)},gU:C(){E B;if(q.G.6r)F;E 2b=0,2h=0;if(q.G.8n){E J;q.$2v.1N(\'.3C\').1B(C(i,el){J=el.3C.pu();2b=el.3C.gC(J[0].gV);2h=el.3C.gC(J[0].e0);B=el.3C.pb()})}N{2b=q.$2v.1b(0).dE;2h=q.$2v.1b(0).dF;B=q.$2v.3v().2K()}if(2b>2h&&2h>0){E gh=2h;E gg=2b;2b=gh;2h=gg}2b=q.1e.dG(B,2b);2h=q.1e.dG(B,2h);B=B.4x(0,2b)+q.J.5a(1)+B.4x(2b);if(2h>2b){E dI=q.J.5a(1).4y().12;B=B.4x(0,2h+dI)+q.J.5a(2)+B.4x(2h+dI)}if(q.gk!==q.1x.dH(B)){q.1e.1U(B)}if(q.G.8n){q.$2v.1N(\'.3C\').3v()}q.$T.2O();if(!q.L.3z(B)){q.3f.1u()}q.J.3d();q.$2v.3h(\'1D.I-2v-gl\');q.1t.gf();q.1t.ge(\'B\');q.1R.2R();q.G.6r=1q;q.1X.2u(\'6r\',B)},ga:C(e){if(e.3j!==9)F 1q;E $el=q.$2v;E 2b=$el.1b(0).dE;$el.2K($el.2K().aB(0,2b)+"\\t"+$el.2K().aB($el.1b(0).dF));$el.1b(0).dE=$el.1b(0).dF=2b+1;F O},dG:C(B,2I){E dM=B.12;E c=0;if(B[2I]==\'>\'){c++}N{2B(E i=2I;i<=dM;i++){c++;if(B[i]==\'>\'){6n}N if(B[i]==\'<\'||i==dM){c=0;6n}}}F 2I+c}}},1X:C(){F{p5:C(){F $.7E({},q)},p7:C(){F q.$T},p6:C(){F q.$2Q},pf:C(){F q.$2j},pg:C(){F q.$2v},pq:C(){F(q.$1A)?q.$1A:O},9K:C(1w){q.1X.8e=1w},7g:C(){F q.1X.8e},2u:C(1m,e,1f){E 9V=1m+\'pp\';E gy=\'I\';E 2A=q.G[9V];if(q.$2v){E 8l=O;E 9t=$.pr(q.$2v[0],\'9t\');if(1s 9t!=\'1y\'&&1s 9t[9V]!=\'1y\'){$.1B(9t[9V],$.1d(C(1k,1E){if(1E[\'pt\']==gy){E 1f=(1s 1f==\'1y\')?[e]:[e,1f];8l=(1s 1f==\'1y\')?1E.7N.6e(q,e):1E.7N.6e(q,e,1f)}},q))}if(8l)F 8l}if($.5k(2A)){F(1s 1f==\'1y\')?2A.6e(q,e):2A.6e(q,e,1f)}N{F(1s 1f==\'1y\')?e:1f}},gA:C(){q.G.jL=1q;q.1X.2u(\'gA\');q.$2j.3h(\'.I\').gv(\'I\');q.$T.3h(\'.I\');$(1l).3h(\'6R.I.\'+q.2G);$(1l).3h(\'2y.I-M-83.\'+q.2G);$(1l).3h(\'2y.I-M-4J-3v.\'+q.2G);$(1l).3h(\'5H.I.\'+q.2G+\' 2y.I.\'+q.2G);$("31").3h(\'6b.I.\'+q.2G);$(q.G.6y).3h(\'6b.I.\'+q.2G);q.$T.2S(\'I-T I-1M I-3f\');q.$T.1K(\'5d\');E B=q.1e.1b();if(q.G.1A){q.$1A.1h(\'a\').1B(C(){E $el=$(q);if($el.1f(\'1n\')){$el.1f(\'1n\').1u();$el.1f(\'1n\',{})}})}if(q.2o.aa()){q.$2Q.3F(q.$2j);q.$2Q.1u();q.$2j.2K(B).2O()}N{q.$2Q.3F(q.$T);q.$2Q.1u();q.$2j.B(B).2O()}if(q.$5e)q.$5e.1u();if(q.$4F)q.$4F.1u();if(q.$74)q.$74.1u();$(\'.I-1A-3q-\'+q.2G).1u();gu(q.9m)}}},1n:C(){F{2o:C(1w,$1n,dU){if(1w==\'3a\'&&q.G.dT){$.1B(q.G.dT,$.1d(C(i,s){E 1w=s.Y,1C;if(1s s[\'1G\']!=\'1y\'){1w=1w+\'-\'+s[\'1G\']}s.1m=(q.L.7J(s.Y))?\'R\':\'28\';if(1s s.1C!=="1y"){1C=s.1C}N{1C=(s.1m==\'28\')?\'28.3a\':\'R.3a\'}if(q.G.1M&&s.1m==\'R\'&&s.Y==\'p\')F;q.3a[1w]={Y:s.Y,1o:s.1o,\'1G\':s[\'1G\'],1c:s.1c,1f:s.1f,8M:s.8M};dU[1w]={1C:1C,1J:s.1J}},q))}$.1B(dU,$.1d(C(2g,2X){E $2x=$(\'<a 2k="#" 1G="I-1n-\'+2g+\'" 9c="1t">\'+2X.1J+\'</a>\');if(1w==\'3a\')$2x.2f(\'I-3a-\'+2g);$2x.on(\'2y\',$.1d(C(e){e.2w();E 1m=\'1C\';E 2A=2X.1C;if(2X.4A){1m=\'4A\';2A=2X.4A}N if(2X.1n){1m=\'1n\';2A=2X.1n}if($(e.1Q).3i(\'I-1n-V-c9\'))F;q.1t.ac(e,2g,1m,2A);q.1n.7C()},q));q.1R.cc($2x,2g,2X);$1n.1F($2x)},q))},2O:C(e,1k){if(!q.G.6r){e.2w();F O}E $1t=q.1t.1b(1k);E $1n=$1t.1f(\'1n\').aU(1l.31);if(q.G.cA){$1n.2f("I-1n-jP")}if($1t.3i(\'7y\')){q.1n.7C()}N{q.1n.7C();q.1R.79();q.1X.2u(\'pm\',{1n:$1n,1k:1k,1t:$1t});q.1t.9q(1k);$1t.2f(\'7y\');E 7x=$1t.2I();E dS=$1n.2J();if((7x.2c+dS)>$(1l).2J()){7x.2c=8d.pl(0,7x.2c-dS)}E 2c=7x.2c+\'px\';if(q.$1A.3i(\'1A-82-2Q\')){E 2U=q.$1A.6c()+q.G.6z;E 4g=\'82\';if(q.G.6y!==1l){2U=(q.$1A.6c()+q.$1A.2I().2U)+q.G.6z;4g=\'8u\'}$1n.1O({4g:4g,2c:2c,2U:2U+\'px\'}).2O()}N{E 2U=($1t.6c()+7x.2U)+\'px\';$1n.1O({4g:\'8u\',2c:2c,2U:2U}).2O()}q.1X.2u(\'qP\',{1n:$1n,1k:1k,1t:$1t});q.$1n=$1n}$(1l).dR(\'2y.I-1n\',$.1d(q.1n.3v,q));q.$T.dR(\'2y.I-1n\',$.1d(q.1n.3v,q));$(1l).dR(\'2s.I-1n\',$.1d(q.1n.9a,q));$1n.on(\'ay.I-1n\',$.1d(q.L.d8,q)).on(\'az.I-1n\',$.1d(q.L.bJ,q));e.fw()},9a:C(e){if(e.7U!=q.3j.b2)F;q.1n.7C();q.$T.2n()},7C:C(){q.$1A.1h(\'a.7y\').2S(\'I-8A\').2S(\'7y\');q.L.bJ();$(\'.I-1n-\'+q.2G).3v();$(\'.I-1n-V-h9\').2S(\'I-1n-V-h9\');if(q.$1n){q.$1n.3h(\'.I-1n\');q.1X.2u(\'qC\',q.$1n);q.$1n=O}},3v:C(e){E $1n=$(e.1Q);if(!$1n.3i(\'7y\')&&!$1n.3i(\'I-1n-V-c9\')){$1n.2S(\'7y\');$1n.3h(\'ay az\');q.1n.7C()}}}},22:C(){F{2O:C(){q.1a.2R(\'22\',q.1H.1b(\'22\'),hP);q.1v.3Q(\'#I-1a-22-1v\',q.G.76,q.22.1Y);q.J.3o();q.J.1b();E 1g=q.2T.4y();$(\'#I-6k\').2K(1g);q.1a.2O()},1Y:C(2P,4Y,e){if(1s 2P.6U!=\'1y\'){q.1a.4j();q.J.3d();q.1X.2u(\'qG\',2P);F}E V;if(1s 2P==\'6Z\'){V=2P}N{E 1g=$(\'#I-6k\').2K();if(1s 1g==\'1y\'||1g===\'\')1g=2P.6k;V=\'<a 2k="\'+2P.9b+\'" id="9b-2r">\'+1g+\'</a>\'}if(4Y){q.J.8p();E 2r=q.J.6Q();q.1Y.dA(e,2r)}N{q.1a.4j()}q.J.3d();q.25.1U();q.1Y.fc(V);if(1s 2P==\'6Z\')F;E 8t=$(q.$T.1h(\'a#9b-2r\'));if(8t.12!==0){8t.1K(\'id\').1K(\'1o\')}N 8t=O;q.1X.2u(\'76\',8t,2P)}}},2n:C(){F{2W:C(){q.$T.2n();E 3I=q.$T.3O().3I();if(3I.12===0)F;if(3I[0].12===0||3I[0].1p==\'58\'||3I[0].a8==3){F}if(3I[0].1p==\'8D\'||3I[0].1p==\'8N\'){E 4w=3I.1h(\'li\').3I();if(!q.L.6X(4w)&&4w.1g()===\'\'){q.1V.2W(4w);F}}if(q.G.1M&&!q.L.7J(3I[0].1p)){q.J.1b();q.14.2W(q.$T[0],0);q.14.3P(q.$T[0],0);q.J.4l();F}q.1V.2W(3I)},3P:C(){E 2Z=q.$T.3O().2Z();q.$T.2n();if(2Z.9B()===0)F;if(q.L.3z(q.$T.B())){q.J.1b();q.14.43(1q);q.14.9I(2Z[0]);q.14.3P(2Z[0],0);q.J.4l()}N{q.J.1b();q.14.9j(2Z[0]);q.14.43(O);q.J.4l()}},dO:C(){E 8v=1l.4D().8v;if(8v===4e)F O;if(q.G.1M&&$(8v.e4).3i(\'I-1M\'))F 1q;N if(!q.L.4p(8v.e4))F O;F q.$T.is(\':2n\')}}},M:C(){F{2O:C(){q.1a.2R(\'M\',q.1H.1b(\'M\'),hP);q.1v.3Q(\'#I-1a-M-4d\',q.G.75,q.M.1Y);q.J.3o();q.1a.2O()},hc:C($M){E $V=$M.2q(\'a\',q.$T[0]);q.1a.2R(\'iX\',q.1H.1b(\'7L\'),qv);q.1a.cy();q.M.hJ=q.1a.io(q.1H.1b(\'hK\'));q.M.hF=q.1a.cz(q.1H.1b(\'3o\'));q.M.hJ.on(\'2y\',$.1d(C(){q.M.1u($M)},q));q.M.hF.on(\'2y\',$.1d(C(){q.M.i0($M)},q));$(\'.I-V-3q\').1u();$(\'#I-M-1J\').2K($M.1c(\'80\'));if(!q.G.hE)$(\'.I-M-V-42\').3v();N{E $dP=$(\'#I-M-V\');$dP.1c(\'2k\',$M.1c(\'4t\'));if($V.12!==0){$dP.2K($V.1c(\'2k\'));if($V.1c(\'1Q\')==\'7K\')$(\'#I-M-V-7Z\').6j(\'a0\',1q)}}if(!q.G.hH)$(\'.I-M-4g-42\').3v();N{E hI=($M.1O(\'6N\')==\'R\'&&$M.1O(\'7f\')==\'5p\')?\'5u\':$M.1O(\'7f\');$(\'#I-M-5g\').2K(hI)}q.1a.2O();$(\'#I-M-1J\').2n()},i1:C($M){E hQ=$(\'#I-M-5g\').2K();E ag=\'\';E dD=\'\';E 8P=\'\';eJ(hQ){9G\'2c\':ag=\'2c\';8P=\'0 \'+q.G.8x+\' \'+q.G.8x+\' 0\';6n;9G\'4s\':ag=\'4s\';8P=\'0 0 \'+q.G.8x+\' \'+q.G.8x;6n;9G\'5u\':dD=\'R\';8P=\'bj\';6n}$M.1O({\'7f\':ag,6N:dD,4B:8P});$M.1c(\'3T\',$M.1c(\'1o\'))},i0:C($M){q.M.7W();q.25.1U();E $V=$M.2q(\'a\',q.$T[0]);E 1J=$(\'#I-M-1J\').2K().K(/(<([^>]+)>)/ig,"");$M.1c(\'80\',1J);q.M.i1($M);E V=$.3k($(\'#I-M-V\').2K());E V=V.K(/(<([^>]+)>)/ig,"");if(V!==\'\'){E 7D=\'((jT--)?[a-7t-9]+(-[a-7t-9]+)*\\\\.)+[a-z]{2,}\';E 3J=2a 2l(\'^(8s|8K|5o)://\'+7D,\'i\');E a1=2a 2l(\'^\'+7D,\'i\');if(V.3N(3J)==-1&&V.3N(a1)===0&&q.G.5c){V=q.G.5c+\'://\'+V}E 1Q=($(\'#I-M-V-7Z\').6j(\'a0\'))?1q:O;if($V.12===0){E a=$(\'<a 2k="\'+V+\'">\'+q.L.6q($M)+\'</a>\');if(1Q)a.1c(\'1Q\',\'7K\');$M.2t(a)}N{$V.1c(\'2k\',V);if(1Q){$V.1c(\'1Q\',\'7K\')}N{$V.1K(\'1Q\')}}}N if($V.12!==0){$V.2t(q.L.6q($M))}q.1a.4j();q.1R.au();q.1e.1S()},j1:C($M){if(q.G.dq){$M.on(\'qH\',$.1d(q.M.bn,q))}E 7N=$.1d(C(e){q.1R.M=$M;q.M.8f=q.M.hk($M);$(1l).on(\'6R.I-M-4J-3v.\'+q.2G,$.1d(q.M.7W,q));if(!q.G.dp)F;q.M.8f.on(\'6R.I 5H.I\',$.1d(C(e){q.M.i2(e,$M)},q))},q);$M.3h(\'6R.I\').on(\'6R.I\',$.1d(q.M.7W,q));$M.3h(\'2y.I 5H.I\').on(\'2y.I 5H.I\',7N)},i2:C(e,$M){e.2w();q.M.4k={x:e.hY,y:e.ah,el:$M,dC:$M.2J()/$M.3n(),h:$M.3n()};e=e.7T||e;if(e.8G){q.M.4k.x=e.8G[0].hY;q.M.4k.y=e.8G[0].ah}q.M.hX()},hX:C(){$(1l).on(\'qI.I-M-4J qT.I-M-4J\',$.1d(q.M.hT,q));$(1l).on(\'iZ.I-M-4J qU.I-M-4J\',$.1d(q.M.hW,q))},hT:C(e){e.2w();e=e.7T||e;E 3n=q.M.4k.h;if(e.8G)3n+=(e.8G[0].ah-q.M.4k.y);N 3n+=(e.ah-q.M.4k.y);E 2J=8d.hV(3n*q.M.4k.dC);if(3n<50||2J<88)F;E 3n=8d.hV(q.M.4k.el.2J()/q.M.4k.dC);q.M.4k.el.1c({2J:2J,3n:3n});q.M.4k.el.2J(2J);q.M.4k.el.3n(3n);q.1e.1S()},hW:C(){q.iw=O;$(1l).3h(\'.I-M-4J\');q.M.7W()},bn:C(e){if(q.$T.1h(\'#I-M-2Q\').12!==0){e.2w();F O}q.$T.on(\'57.I-M-hD-57\',$.1d(C(){3A($.1d(q.M.bs,q),1)},q))},bs:C(){q.M.hC();q.1R.au();q.$T.3h(\'57.I-M-hD-57\');q.1x.4r();q.1e.1S()},hC:C(){q.$T.1h(\'1L[1f-3o-2i]\').1B(C(){E $el=$(q);$el.1c(\'4t\',$el.1c(\'1f-3o-2i\'));$el.1K(\'1f-3o-2i\')})},7W:C(e){if(e&&$(e.1Q).2q(\'#I-M-2Q\',q.$T[0]).12!==0)F;if(e&&e.1Q.1p==\'aA\'){E $M=$(e.1Q);$M.1c(\'1f-3o-2i\',$M.1c(\'4t\'))}E 3G=q.$T.1h(\'#I-M-2Q\');if(3G.12===0)F;$(\'#I-M-5l\').1u();$(\'#I-M-8f\').1u();3G.1h(\'1L\').1O({63:3G[0].1o.63,af:3G[0].1o.af,ae:3G[0].1o.ae,ab:3G[0].1o.ab});3G.1O(\'4B\',\'\');3G.1h(\'1L\').1O(\'hg\',\'\');3G.2t(C(){F $(q).26()});$(1l).3h(\'6R.I-M-4J-3v.\'+q.2G);if(1s q.M.4k!==\'1y\'){q.M.4k.el.1c(\'3T\',q.M.4k.el.1c(\'1o\'))}q.1e.1S()},hd:C($M,3G){if(q.G.dp&&!q.L.6M()){E 8a=$(\'<1j id="I-M-8f" 1f-I="3H"></1j>\');if(!q.L.7b()){8a.1O({2J:\'hi\',3n:\'hi\'})}8a.1c(\'5d\',O);3G.1F(8a);3G.1F($M);F 8a}N{3G.1F($M);F O}},hk:C($M){E 3G=$(\'<1j id="I-M-2Q" 1f-I="3H">\');3G.1O(\'7f\',$M.1O(\'7f\')).1c(\'5d\',O);if($M[0].1o.4B!=\'bj\'){3G.1O({63:$M[0].1o.63,af:$M[0].1o.af,ae:$M[0].1o.ae,ab:$M[0].1o.ab});$M.1O(\'4B\',\'\')}N{3G.1O({\'6N\':\'R\',\'4B\':\'bj\'})}$M.1O(\'hg\',\'.5\').3F(3G);if(q.G.dq){q.M.5l=$(\'<1j id="I-M-5l" 1f-I="3H">\'+q.1H.1b(\'7L\')+\'</1j>\');q.M.5l.1c(\'5d\',O);q.M.5l.on(\'2y\',$.1d(C(){q.M.hc($M)},q));3G.1F(q.M.5l);E hb=q.M.5l.7P();q.M.5l.1O(\'4B-2c\',\'-\'+hb/2+\'px\')}F q.M.hd($M,3G)},1u:C(M){E $M=$(M);E $V=$M.2q(\'a\',q.$T[0]);E $6K=$M.2q(\'6K\',q.$T[0]);E $1r=$M.1r();if($(\'#I-M-2Q\').12!==0){$1r=$(\'#I-M-2Q\').1r()}E $1N;if($6K.12!==0){$1N=$6K.1N();$6K.1u()}N if($V.12!==0){$1r=$V.1r();$V.1u()}N{$M.1u()}$(\'#I-M-2Q\').1u();if($6K.12!==0){q.1V.2W($1N)}N{q.1V.2W($1r)}q.1X.2u(\'dw\',$M[0].4t,$M);q.1a.4j();q.1e.1S()},1Y:C(2P,4Y,e){if(1s 2P.6U!=\'1y\'){q.1a.4j();q.J.3d();q.1X.2u(\'qs\',2P);F}E $1L;if(1s 2P==\'6Z\'){$1L=$(2P).1c(\'1f-I-8m-M\',\'1q\')}N{$1L=$(\'<1L>\');$1L.1c(\'4t\',2P.9b).1c(\'1f-I-8m-M\',\'1q\')}E Q=$1L;E do=q.L.4S(\'P\');if(do){Q=$(\'<29 />\').1F($1L)}if(4Y){q.J.8p();E 2r=q.J.6Q();q.1Y.dA(e,2r)}N{q.1a.4j()}q.J.3d();q.25.1U();q.1Y.B(q.L.6q(Q),O);E $M=q.$T.1h(\'1L[1f-I-8m-M=1q]\').1K(\'1f-I-8m-M\');if(do){$M.1r().26().3Y().5Z(\'<p />\')}N if(q.G.1M){if(!q.L.3z(q.1e.1b())){$M.a6(\'<br>\')}$M.3F(\'<br>\')}if(1s 2P==\'6Z\')F;q.1X.2u(\'75\',$M,2P)}}},3y:C(){F{bo:C(){if(!q.L.1P(\'2E\'))q.$T.2n();q.25.1U();q.J.3o();E R=q.J.4a();if(R&&R.1p==\'5v\'){q.3y.ho()}N if(R===O&&q.G.1M){q.3y.hx()}N{q.3y.hy()}q.J.3d();q.1e.1S()},ho:C(){1l.3Z(\'3y\');q.3y.aO();q.1x.ap();q.1x.4r()},hy:C(){$.1B(q.J.3X(),$.1d(C(i,4V){if(4V.1p===\'6F\'||4V.1p===\'dn\')F;E $el=q.L.bh(4V);E 2c=q.L.dr($el.1O(\'4B-2c\'))+q.G.ad;$el.1O(\'4B-2c\',2c+\'px\')},q))},hx:C(){E 4M=q.J.5Z(\'1i\');$(4M).1c(\'1f-8b\',\'I\');$(4M).1O(\'4B-2c\',q.G.ad+\'px\')},95:C(){q.25.1U();q.J.3o();E R=q.J.4a();if(R&&R.1p==\'5v\'){q.3y.hz()}N{q.3y.hA()}q.J.3d();q.1e.1S()},hz:C(){1l.3Z(\'7p\');E 1z=q.J.3B();E $2x=$(1z).2q(\'li\',q.$T[0]);q.3y.aO();if(!q.G.1M&&$2x.12===0){1l.3Z(\'9S\',O,\'p\');q.$T.1h(\'3p, ol, 29, p\').1B($.1d(q.L.4f,q))}q.1x.4r()},hA:C(){$.1B(q.J.3X(),$.1d(C(i,4V){E $el=q.L.bh(4V);E 2c=q.L.dr($el.1O(\'4B-2c\'))-q.G.ad;if(2c<=0){if(q.G.1M&&1s($el.1f(\'8b\'))!==\'1y\'){$el.2t($el.B()+\'<br />\')}N{$el.1O(\'4B-2c\',\'\');q.L.5r($el,\'1o\')}}N{$el.1O(\'4B-2c\',2c+\'px\')}},q))},aO:C(){E R=q.J.4a();if(q.14.53&&R&&R.1p==\'5v\'&&q.L.3z($(R).1g())){E $R=$(R);$R.1h(\'1j\').6h(\'.I-J-2r\').26().3Y();$R.1F(\'<br>\')}}}},28:C(){F{3a:C(1w){E 1m,1E;if(1s q.3a[1w].1o!=\'1y\')1m=\'1o\';N if(1s q.3a[1w][\'1G\']!=\'1y\')1m=\'1G\';if(1m)1E=q.3a[1w][1m];q.28.30(q.3a[1w].Y,1m,1E)},30:C(Y,1m,1E){E 1z=q.J.3B();if(1z&&1z.1p===\'qc\')F;q.8h=1q;if(q.L.4S(\'8o\')||q.L.h8())F;E 2d=[\'b\',\'4n\',\'i\',\'4m\',\'5x\',\'eM\',\'5Y\',\'hv\',\'hq\'];E hu=[\'5i\',\'5i\',\'em\',\'em\',\'u\',\'4h\',\'4h\',\'7Q\',\'7l\'];2B(E i=0;i<2d.12;i++){if(Y==2d[i])Y=hu[i]}if(q.G.4z){if($.3t(Y,q.G.4z)==-1)F}N{if($.3t(Y,q.G.4c)!==-1)F}q.28.1m=1m||O;q.28.1E=1E||O;q.25.1U();if(!q.L.1P(\'2E\')){q.$T.2n()}q.J.1b();if(q.14.53){q.28.i3(Y)}N{q.28.fS(Y)}},i3:C(Y){E 1z=q.J.3B();E $1r=$(1z).2q(Y+\'[1f-I-Y=\'+Y+\']\',q.$T[0]);if($1r.12!==0&&(q.28.1m!=\'1o\'&&$1r[0].1p!=\'6w\')){if(q.L.3z($1r.1g())){q.1V.54($1r[0]);$1r.1u();q.1e.1S()}N if(q.L.6T($1r)){q.1V.54($1r[0])}F}E Q=$(\'<\'+Y+\'>\').1c(\'1f-3H\',\'I\').1c(\'1f-I-Y\',Y);Q.B(q.G.6o);Q=q.28.dj(Q);E Q=q.1Y.Q(Q);q.1V.3P(Q);q.1e.1S()},fS:C(Y){q.28.eF(Y);q.J.3o();1l.3Z(\'eM\');q.$T.1h(\'7c\').1B($.1d(C(i,s){E $el=$(s);q.28.eG($el,Y);E $1j;if(q.28.1m){$1j=$(\'<1j>\').1c(\'1f-I-Y\',Y).1c(\'1f-3H\',\'I\');$1j=q.28.dj($1j)}N{$1j=$(\'<\'+Y+\'>\').1c(\'1f-I-Y\',Y).1c(\'1f-3H\',\'I\')}$el.2t($1j.B($el.26()));E $1r=$1j.1r();if($1r&&$1r[0].1p===\'U\'){$1j.1r().2t($1j)}if(Y==\'1j\'){if($1r&&$1r[0].1p===\'6w\'&&q.28.1m===\'1o\'){E 2C=q.28.1E.4o(\';\');2B(E z=0;z<2C.12;z++){if(2C[z]===\'\')F;E 1o=2C[z].4o(\':\');$1r.1O(1o[0],\'\');if(q.L.5r($1r,\'1o\')){$1r.2t($1r.26())}}}}},q));if(Y!=\'1j\'){q.$T.1h(q.G.4N.3c(\', \')).1B($.1d(C(i,s){E $el=$(s);if(s.1p===\'U\'&&s.4u.12===0){$el.2t($el.26());F}E ai=$el.1O(\'1g-7a\');if(ai===\'3K-eP\'){$el.1O(\'1g-7a\',\'\');q.L.5r($el,\'1o\')}},q))}if(Y!=\'4h\'){E eK=q;q.$T.1h(\'28\').1B(C(i,s){eK.L.4I(s,\'4h\')})}q.J.3d();q.1e.1S()},eG:C($el,Y){E 3u=q;$el.3O(Y).1B(C(){E $4w=$(q);if(!$4w.3i(\'I-J-2r\')){if(3u.28.1m==\'1o\'){E 2C=3u.28.1E.4o(\';\');2B(E z=0;z<2C.12;z++){if(2C[z]===\'\')F;E 1o=2C[z].4o(\':\');$4w.1O(1o[0],\'\');if(3u.L.5r($4w,\'1o\')){$4w.2t($4w.26())}}}N{$4w.26().3Y()}}})},eF:C(Y){q.J.3o();E 1h=\'\';if(q.28.1m==\'1G\')1h=\'[1f-I-1G=\'+q.28.1E+\']\';N if(q.28.1m==\'1o\'){1h=\'[1f-I-1o="\'+q.28.1E+\'"]\'}E 3u=q;if(Y!=\'4h\'){q.$T.1h(\'4h\').1B(C(i,s){3u.L.4I(s,\'28\')})}if(Y!=\'1j\'){q.$T.1h(Y).1B(C(){E $el=$(q);$el.2t($(\'<7c />\').B($el.26()))})}q.$T.1h(\'[1f-I-Y="\'+Y+\'"]\'+1h).1B(C(){if(1h===\'\'&&Y==\'1j\'&&q.1p.3e()==Y)F;E $el=$(q);$el.2t($(\'<7c />\').B($el.26()))});q.J.3d()},dj:C(Q){eJ(q.28.1m){9G\'1G\':if(Q.3i(q.28.1E)){Q.2S(q.28.1E);Q.1K(\'1f-I-1G\')}N{Q.2f(q.28.1E);Q.1c(\'1f-I-1G\',q.28.1E)}6n;9G\'1o\':Q[0].1o.q4=q.28.1E;Q.1c(\'1f-I-1o\',q.28.1E);6n}F Q},qd:C(){q.25.1U();E 1z=q.J.3B();E 23=q.J.e8();q.J.3o();if(1z&&1z.1p===\'6w\'){E $s=$(1z);$s.1K(\'1o\');if($s[0].4u.12===0){$s.2t($s.26())}}$.1B(23,$.1d(C(i,s){E $s=$(s);if($.3t(s.1p.3e(),q.G.4N)!=-1&&!$s.3i(\'I-J-2r\')){$s.1K(\'1o\');if($s[0].4u.12===0){$s.2t($s.26())}}},q));q.J.3d();q.1e.1S()},qe:C(1w){q.25.1U();E 1r=q.J.67();E 23=q.J.e8();q.J.3o();if(1r&&1r.1p===\'6w\'){E $s=$(1r);$s.1O(1w,\'\');q.L.5r($s,\'1o\');if($s[0].4u.12===0){$s.2t($s.26())}}$.1B(23,$.1d(C(i,s){E $s=$(s);if($.3t(s.1p.3e(),q.G.4N)!=-1&&!$s.3i(\'I-J-2r\')){$s.1O(1w,\'\');q.L.5r($s,\'1o\');if($s[0].4u.12===0){$s.2t($s.26())}}},q));q.J.3d();q.1e.1S()},dm:C(){q.25.1U();E 1z=q.J.3B();q.J.3o();1l.3Z(\'dm\');if(1z&&1z.1p===\'6w\'){$(1z).2t($(1z).26())}$.1B(q.J.6I(),$.1d(C(i,s){E $s=$(s);if($.3t(s.1p.3e(),q.G.4N)!=-1&&!$s.3i(\'I-J-2r\')){$s.2t($s.26())}},q));q.J.3d();q.1e.1S()},7O:C(3E){q.28.30(\'1j\',\'1G\',3E)},qn:C(1E){q.28.30(\'1j\',\'1o\',1E)}}},1Y:C(){F{1U:C(B,1x){q.3f.1u();B=q.1x.7R(B);if(1s 1x==\'1y\'){B=q.1x.8y(B,O)}q.$T.B(B);q.J.1u();q.2n.3P();q.1x.ap();q.1e.1S();q.1R.2R();if(1s 1x==\'1y\'){3A($.1d(q.1x.4r,q),10)}},1g:C(1g){q.3f.1u();1g=1g.4y();1g=$.3k(1g);1g=q.1x.aj(1g,O);q.$T.2n();if(q.L.1P(\'2E\')){q.1Y.ds(1g)}N{q.J.1b();q.14.55();E el=1l.3w("1i");el.3x=1g;E 4L=1l.9M(),Q,5K;56((Q=el.9N)){5K=4L.81(Q)}q.14.3L(4L);if(5K){E 14=q.14.7S();14.9I(5K);14.43(1q);q.2T.8T();q.2T.4l(14)}}q.1e.1S();q.1x.4r()},fc:C(B){q.1Y.B(B,O)},B:C(B,1x){q.3f.1u();if(1s 1x==\'1y\')1x=1q;q.$T.2n();B=q.1x.7R(B);if(1x){B=q.1x.8y(B)}if(q.L.1P(\'2E\')){q.1Y.ds(B)}N{if(q.1x.9D)q.1Y.eV(B);N 1l.3Z(\'qr\',O,B);q.1Y.eX()}q.1x.ap();if(!q.G.1M){q.$T.1h(\'p\').1B($.1d(q.L.4f,q))}q.1e.1S();q.1R.2R();if(1x){q.1x.4r()}},eX:C(){if(!q.L.1P(\'4b\'))F;E $1N=$(q.J.4a()).1N();if($1N.12>0&&$1N[0].1p==\'P\'&&$1N.B()===\'\'){$1N.1u()}},ds:C(B){if(q.L.gj()){E 1r=q.L.4S(\'P\');E $B=$(\'<1i>\').1F(B);E eU=$B.26().is(\'p, :87, dl, 3p, ol, 1i, 3W, 2Y, 29, 2F, du, 49, 87, c8, eE, eS\');if(1r&&eU)q.1Y.ey(1r,B);N q.1Y.ew(B);F}1l.J.92().gw(B)},eV:C(B){B=q.1x.7R(B);q.J.1b();q.14.55();E el=1l.3w(\'1i\');el.3x=B;E 4L=1l.9M(),Q,5K;56((Q=el.9N)){5K=4L.81(Q)}q.14.3L(4L);q.14.43(1q);q.1V.54(5K)},Q:C(Q,55){Q=Q[0]||Q;E B=q.L.6q(Q);B=q.1x.7R(B);if(B.1T(/</g)!==4e){Q=$(B)[0]}q.J.1b();if(55!==O){q.14.55()}q.14.3L(Q);q.14.43(O);q.J.4l();F Q},qf:C(Q,x,y){Q=Q[0]||Q;q.J.1b();E 14;if(1l.aq){E 3s=1l.aq(x,y);q.14.2W(3s.er,3s.2I);q.14.43(1q);q.14.3L(Q)}N if(1l.ao){14=1l.ao(x,y);14.3L(Q)}N if(1s 1l.31.an!="1y"){14=1l.31.an();14.ak(x,y);E 7e=14.eo();7e.ak(x,y);14.eA("ez",7e);14.7z()}},dA:C(e,Q){Q=Q[0]||Q;E 14;E x=e.qi,y=e.qk;if(1l.aq){E 3s=1l.aq(x,y);E 2T=1l.4D();14=2T.6l(0);14.2W(3s.er,3s.2I);14.43(1q);14.3L(Q)}N if(1l.ao){14=1l.ao(x,y);14.3L(Q)}N if(1s 1l.31.an!="1y"){14=1l.31.an();14.ak(x,y);E 7e=14.eo();7e.ak(x,y);14.eA("ez",7e);14.7z()}},ey:C(1r,B){E Q=1l.3w(\'1j\');Q.3E=\'I-ie-5C\';q.1Y.Q(Q);E 7m=$(1r).B();7m=\'<p>\'+7m.K(/<1j 1G="I-ie-5C"><\\/1j>/gi,\'</p>\'+B+\'<p>\')+\'</p>\';7m=7m.K(/<p><\\/p>/gi,\'\');$(1r).2t(7m)},ew:C(B){q.J.1b();q.14.55();E el=1l.3w("1i");el.3x=B;E 4L=1l.9M(),Q,5K;56((Q=el.9N)){5K=4L.81(Q)}q.14.3L(4L);q.14.43(O);q.J.4l()}}},1D:C(){F{3Q:C(e){if(q.7B)F;E 1k=e.7U;E 4W=(1k>=37&&1k<=40);q.1D.48=e.9u||e.6J;q.1D.1z=q.J.3B();q.1D.1r=q.J.67();q.1D.R=q.J.4a();q.1D.2F=q.L.bB(q.1D.1z,\'2F\');q.1D.29=q.L.bB(q.1D.1z,\'29\');q.1D.7Y=q.L.bB(q.1D.1z,\'7Y\');q.6m.3Q(e,1k);if(q.L.7b()){q.1D.fN(4W,1k);q.1D.g6(e,1k)}q.1D.fV(4W);q.1D.fY(e,1k);E eC=q.1X.2u(\'1D\',e);if(eC===O){e.2w();F O}if(q.G.al&&(q.L.1P(\'2E\')||q.L.1P(\'4b\'))&&(1k===q.3j.dW||1k===q.3j.eB)){E dy=O;E $3W=O;if(q.1D.R&&q.1D.R.1p===\'6F\'){$3W=$(q.1D.R).2q(\'3W\',q.$T[0])}if($3W&&$3W.1h(\'2Y\').2Z()[0]===q.1D.R){dy=1q}if(q.L.6T()&&dy){E Q=$(q.G.5S);$3W.3F(Q);q.1V.2W(Q)}}if(q.G.al&&1k===q.3j.dW){q.1D.fH()}if(!q.G.al&&1k===q.3j.70){e.2w();if(!q.14.53)q.14.55();F}if(1k==q.3j.70&&!e.6s&&!e.9u&&!e.6J){E fQ=q.1X.2u(\'nz\',e);if(fQ===O){e.2w();F O}if(q.1D.29&&q.1D.fk(e)===1q){F O}E 1z,$1N;if(q.1D.2F){F q.1D.fE(e)}N if(q.1D.29||q.1D.7Y){1z=q.J.3B();$1N=$(1z).1N();if($1N.12!==0&&$1N[0].1p==\'58\'){F q.1D.6x(e)}N if(q.L.6T()&&(1z&&1z!=\'6w\')){F q.1D.9x(e)}N{F q.1D.6x(e)}}N if(q.G.1M&&!q.1D.R){1z=q.J.3B();$1N=$(q.1D.1z).1N();if($1N.12!==0&&$1N[0].1p==\'58\'){F q.1D.6x(e)}N if(1z!==O&&$(1z).3i(\'I-7s-3g\')){q.1V.54(1z);$(1z).26().3Y();F q.1D.9x(e)}N{if(q.L.dN()){F q.1D.9x(e)}N if($1N.12===0&&1z===O&&1s $1N.ny!=\'1y\'){F q.1D.6x(e)}F q.1D.6x(e)}}N if(q.G.1M&&q.1D.R){3A($.1d(q.1D.fs,q),1)}N if(!q.G.1M&&q.1D.R){3A($.1d(q.1D.fm,q),1);if(q.1D.R.1p===\'5v\'){1z=q.J.3B();E $1r=$(1z).2q(\'li\',q.$T[0]);E $2e=$1r.2q(\'3p,ol\',q.$T[0]);if($1r.12!==0&&q.L.3z($1r.B())&&$2e.1N().12===0&&q.L.3z($2e.1h("li").2Z().B())){$2e.1h("li").2Z().1u();E Q=$(q.G.5S);$2e.3F(Q);q.1V.2W(Q);F O}}}N if(!q.G.1M&&!q.1D.R){F q.1D.fj(e)}}if(1k===q.3j.70&&(e.9u||e.6s)){F q.1D.i4(e)}if(1k===q.3j.dx||e.6J&&1k===ek||e.6J&&1k===e5){F q.1D.fG(e,1k)}if(1k===q.3j.84||1k===q.3j.8Q){E 23=q.J.6I();if(23){E 2p=23.12;E 2Z;2B(E i=0;i<2p;i++){E 3O=$(23[i]).3O(\'1L\');if(3O.12!==0){E 3u=q;$.1B(3O,C(z,s){E $s=$(s);if($s.1O(\'7f\')!=\'5p\')F;3u.1X.2u(\'dw\',s.4t,$s);2Z=s})}N if(23[i].1p==\'aA\'){if(2Z!=23[i]){q.1X.2u(\'dw\',23[i].4t,$(23[i]));2Z=23[i]}}}}}if(1k===q.3j.84){E R=q.J.4a();E ff=($(R).1O(\'4B-2c\')!==\'nC\');if(R&&ff&&q.14.53&&q.L.gp()){q.3y.95();e.2w();F}if(q.L.1P(\'4b\')){E 4G=q.J.iG();E am=$(4G).4G()[0];if(4G&&4G.1p===\'fT\')$(4G).1u();if(am&&am.1p===\'fT\')$(am).1u()}q.1D.hp();q.1D.ij(e)}q.1e.1S()},fN:C(4W,1k){if(!4W&&(q.1X.7g()==\'2y\'||q.1X.7g()==\'4W\')){q.1X.9K(O);if(q.1D.fJ(1k)){q.25.1U()}}},fJ:C(1k){E k=q.3j;E 4X=[k.84,k.8Q,k.70,k.a7,k.b2,k.dx,k.fK,k.fL,k.fM,k.fU];F($.3t(1k,4X)==-1)?1q:O},fV:C(4W){if(!4W)F;if((q.1X.7g()==\'2y\'||q.1X.7g()==\'4W\')){q.1X.9K(O);F}q.1X.9K(\'4W\')},g6:C(e,1k){if(q.1D.48&&1k===90&&!e.6s&&!e.g1&&q.G.25.12){e.2w();q.25.9l();F}N if(q.1D.48&&1k===90&&e.6s&&!e.g1&&q.G.9k.12!==0){e.2w();q.25.a9();F}N if(!q.1D.48){if(1k==q.3j.84||1k==q.3j.8Q||(1k==q.3j.70&&!e.9u&&!e.6s)||1k==q.3j.a7){q.25.1U()}}},fY:C(e,1k){if(q.1D.48&&1k===65){q.L.gW()}N if(1k!=q.3j.g0&&!q.1D.48){q.L.8U()}},fH:C(){E 2d=[q.1D.29,q.1D.2F,q.1D.7Y];2B(E i=0;i<2d.12;i++){if(2d[i]){q.1D.fC(2d[i]);F O}}},i4:C(e){q.25.1U();if(q.L.6T()){F q.1D.9x(e)}F q.1D.6x(e)},fG:C(e,1k){if(!q.G.fp)F 1q;if(q.L.3z(q.1e.1b())&&q.G.9Y===O)F 1q;e.2w();E Q;if(q.1D.2F&&!e.6s){Q=(q.G.6v)?1l.8W(9F(q.G.6v+1).3c(\'\\9Z\')):1l.8W(\'\\t\');q.1Y.Q(Q);q.1e.1S()}N if(q.G.9Y!==O){Q=1l.8W(9F(q.G.9Y+1).3c(\'\\9Z\'));q.1Y.Q(Q);q.1e.1S()}N{if(e.6J&&1k===e5)q.3y.95();N if(e.6J&&1k===ek)q.3y.bo();N if(!e.6s)q.3y.bo();N q.3y.95()}F O},fs:C(){E 4C=q.J.4a();E 9X=4C.3x.K(/<br\\s?\\/?>/gi,\'\');if((4C.1p===\'89\'||4C.1p===\'P\')&&9X===\'\'&&!$(4C).3i(\'I-T\')){E br=1l.3w(\'br\');$(4C).2t(br);q.1V.bT(br);q.1e.1S();F O}},fm:C(){E 4C=q.J.4a();E 9X=4C.3x.K(/<br\\s?\\/?>/gi,\'\');if(4C.1p===\'89\'&&q.L.3z(9X)&&!$(4C).3i(\'I-T\')){E p=1l.3w(\'p\');p.3x=q.G.6o;$(4C).2t(p);q.1V.2W(p);q.1e.1S();F O}N if(q.G.fh&&4C.1p==\'P\'){$(4C).1K(\'1G\').1K(\'1o\')}},fj:C(e){e.2w();q.J.1b();E p=1l.3w(\'p\');p.3x=q.G.6o;q.14.55();q.14.3L(p);q.1V.2W(p);q.1e.1S();F O},fk:C(e){if(!q.L.6T())F;E 5q=$.3k($(q.1D.R).B());if(5q.3N(/(<br\\s?\\/?>){2}$/i)!=-1){e.2w();if(q.G.1M){E br=1l.3w(\'br\');$(q.1D.29).3F(br);q.1V.bT(br);$(q.1D.R).B(5q.K(/<br\\s?\\/?>$/i,\'\'))}N{E Q=$(q.G.5S);$(q.1D.29).3F(Q);q.1V.2W(Q)}F 1q}F},fC:C(2j){if(!q.L.6T())F;q.25.1U();if(q.G.1M){E 26=$(\'<1i>\').1F($.3k(q.$T.B())).26();E 2Z=26.2Z()[0];if(2Z.1p==\'6w\'&&2Z.3x===\'\'){2Z=26.4G()[0]}if(q.L.6q(2Z)!=q.L.6q(2j))F;E br=1l.3w(\'br\');$(2j).3F(br);q.1V.54(br)}N{if(q.$T.26().2Z()[0]!==2j)F;E Q=$(q.G.5S);$(2j).3F(Q);q.1V.2W(Q)}},fE:C(e){e.2w();E Q=1l.8W(\'\\n\');q.J.1b();q.14.55();q.14.3L(Q);q.1V.54(Q);q.1e.1S();F O},6x:C(e){F q.1D.bR(e)},9x:C(e){F q.1D.bR(e,1q)},bR:C(e,fv){e.fw();q.J.1b();E 5t=1l.3w(\'br\');if(q.L.1P(\'2E\')){q.14.43(O);q.14.3P(q.14.bQ,q.14.bO)}N{q.14.55()}q.14.3L(5t);E $9W=$(5t).1r("a");if($9W.12>0){$9W.1h(5t).1u();$9W.3F(5t)}if(fv===1q){E $1N=$(5t).1N();if($1N.12!==0&&$1N[0].1p===\'58\'&&q.L.dN()){q.1V.54(5t);q.1e.1S();F O}E bP=1l.3w(\'br\');q.14.3L(bP);q.1V.54(bP)}N{if(q.L.1P(\'2E\')){E 3g=1l.3w(\'1j\');3g.3x=\'	T;\';$(5t).3F(3g);q.1V.54(3g);$(3g).1u()}N{E 14=1l.92();14.9I(5t);14.43(1q);E J=3l.4D();J.8T();J.4l(14)}}q.1e.1S();F O},hp:C(){E $1z=$(q.1D.1z);if($1z.1g().3N(/^\\6g$/g)===0){$1z.1u()}},ij:C(e){E $1z=$(q.1D.1z);E $1r=$(q.1D.1r);E 2Y=$1z.2q(\'2Y\',q.$T[0]);if(2Y.12!==0&&$1z.2q(\'li\',q.$T[0])&&$1r.3O(\'li\').12===1){if(!q.L.3z($1z.1g()))F;e.2w();$1z.1u();$1r.1u();q.1V.2W(2Y)}}}},2s:C(){F{3Q:C(e){if(q.7B)F;E 1k=e.7U;q.2s.1z=q.J.3B();q.2s.1r=q.J.67();E $1r=q.L.4p($(q.2s.1r).1r());E kA=q.1X.2u(\'2s\',e);if(kA===O){e.2w();F O}if(!q.G.1M&&q.2s.1z.a8==3&&q.2s.1z.12<=1&&(q.2s.1r===O||q.2s.1r.1p==\'e6\')){q.2s.9U()}if(!q.G.1M&&q.L.4p(q.2s.1z)&&q.2s.1z.1p===\'89\'){q.2s.9U(O)}if(!q.G.1M&&$(q.2s.1r).3i(\'I-7s-3g\')&&($1r===O||$1r[0].1p==\'e6\')){$(q.2s.1r).26().3Y();q.2s.9U()}if(q.2z.aD()&&q.2z.kB(1k))q.2z.30();if(1k===q.3j.8Q||1k===q.3j.84){if(q.L.1P(\'4b\')){E 2Y=$(q.1D.1z).2q(\'2Y\',q.$T[0]);if(2Y.9B()!==0&&2Y.1g()!==\'\'){e.2w();F O}}q.1x.4r();if(q.1R.M){e.2w();q.M.7W();q.25.1U();q.M.1u(q.1R.M);q.1R.M=O;F O}q.$T.1h(\'p\').1B($.1d(C(i,s){q.L.4f(i,$(s).B())},q));if(q.G.1M&&q.2s.1z&&q.2s.1z.1p==\'89\'&&q.L.3z(q.2s.1z.3x)){$(q.2s.1z).3F(q.J.5a());q.J.3d();$(q.2s.1z).1u()}F q.2s.kN(e)}},9U:C(8O){E $1z=$(q.2s.1z);E Q;if(8O===O){Q=$(\'<p>\').1F($1z.B())}N{Q=$(\'<p>\').1F($1z.8O())}$1z.2t(Q);E 1N=$(Q).1N();if(1s(1N[0])!==\'1y\'&&1N[0].1p==\'58\'){1N.1u()}q.1V.3P(Q)},kN:C(e){E B=$.3k(q.$T.B());if(!q.L.3z(B))F;e.2w();if(q.G.1M){q.$T.B(q.J.5a());q.J.3d()}N{q.$T.B(q.G.5S);q.2n.2W()}q.1e.1S();F O}}},1H:C(){F{2R:C(){q.G.bU=q.G.kn[q.G.1H]},1b:C(1w){F(1s q.G.bU[1w]!=\'1y\')?q.G.bU[1w]:\'\'}}},3K:C(){F{1Y:C(){q.25.1U();E 1Z=q.J.3X();if(1Z[0]!==O&&q.3K.jZ(1Z)){if(!q.L.1P(\'2E\'))q.$T.2n();F}if(q.L.1P(\'2E\')){q.3K.aR()}N{q.3K.kc()}},jZ:C(1Z){E 9y=[\'li\',\'2Y\',\'5P\',\'29\',\'7Y\',\'2F\',\'dl\',\'dt\',\'dd\'];E 3I=1Z[0].1p.3e();E 2Z=q.J.kJ();2Z=(1s 2Z==\'1y\')?3I:2Z.1p.3e();E bN=$.3t(3I,9y)!=-1;E kl=$.3t(2Z,9y)!=-1;if((bN&&kl)||bN){F 1q}},aR:C(){q.L.8z();q.25.1U();q.1Y.Q(1l.3w(\'hr\'));q.L.bk();q.1e.1S()},kc:C(){q.25.1U();E bV=\'<p id="I-1Y-3K"><br /></p>\';if(q.G.1M)bV=\'<br id="I-1Y-3K">\';1l.3Z(\'na\',O,\'<hr>\'+bV);q.3K.k9();q.1e.1S()},k9:C(){E Q=q.$T.1h(\'#I-1Y-3K\');E 1N=$(Q).1N()[0];E 1Q=1N;if(q.L.1P(\'4b\')&&1N&&1N.3x===\'\'){1Q=$(1N).1N()[0];$(1N).1u()}if(1Q){Q.1u();if(!q.G.1M){q.$T.2n();q.3K.2W(1Q)}}N{Q.1K(\'id\');q.3K.2W(Q[0])}},2W:C(Q){if(1s Q===\'1y\')F;E jQ=1l.8W(\'\\6g\');q.J.1b();q.14.2W(Q,0);q.14.3L(jQ);q.14.43(1q);q.J.4l()}}},V:C(){F{2O:C(e){if(1s e!=\'1y\'&&e.2w)e.2w();if(!q.1R.c7(\'a\')){q.1a.2R(\'V\',q.1H.1b(\'ba\'),jS)}N{q.1a.2R(\'V\',q.1H.1b(\'ca\'),jS)}q.1a.cy();E kE=!q.1R.c7(\'a\')?q.1H.1b(\'1Y\'):q.1H.1b(\'7L\');q.V.kL=q.1a.cz(kE);q.J.1b();q.V.kG();q.V.kg();if(q.V.1Q==\'7K\')$(\'#I-V-7Z\').6j(\'a0\',1q);q.V.$9n=$(\'#I-V-2i\');q.V.$bZ=$(\'#I-V-2i-1g\');q.V.$bZ.2K(q.V.1g);q.V.$9n.2K(q.V.2i);q.V.kL.on(\'2y\',$.1d(q.V.1Y,q));$(\'.I-V-3q\').1u();q.J.3o();q.1a.2O();q.V.$9n.2n()},kg:C(){E jV=3u.jU.2k.K(/\\/$/i,\'\');if(1s q.V.2i!=="1y"){q.V.2i=q.V.2i.K(jV,\'\');q.V.2i=q.V.2i.K(/^\\/#/,\'#\');q.V.2i=q.V.2i.K(\'bY:\',\'\');if(!q.G.5c){E 3J=2a 2l(\'^(8s|8K|5o)://\'+3u.jU.n4,\'i\');q.V.2i=q.V.2i.K(3J,\'\')}}},kG:C(){q.V.$Q=O;E $el=$(q.J.3B()).2q(\'a\',q.$T[0]);if($el.12!==0&&$el[0].1p===\'A\'){q.V.$Q=$el;q.V.2i=$el.1c(\'2k\');q.V.1g=$el.1g();q.V.1Q=$el.1c(\'1Q\')}N{q.V.1g=q.2T.4y();q.V.2i=\'\';q.V.1Q=\'\'}},1Y:C(){q.3f.1u();E 1Q=\'\';E V=q.V.$9n.2K();E 1g=q.V.$bZ.2K().K(/(<([^>]+)>)/ig,"");if($.3k(V)===\'\'){q.V.$9n.2f(\'I-3D-6U\').on(\'2s\',C(){$(q).2S(\'I-3D-6U\');$(q).3h(\'2s\')});F}if(V.3N(\'@\')!=-1&&/(8s|8K|5o):\\/\\//i.bE(V)===O){V=\'bY:\'+V}N if(V.3N(\'#\')!==0){if($(\'#I-V-7Z\').6j(\'a0\')){1Q=\'7K\'}E 7D=\'((jT--)?[a-7t-9]+(-[a-7t-9]+)*\\\\.)+[a-z]{2,}\';E 3J=2a 2l(\'^(8s|8K|5o)://\'+7D,\'i\');E a1=2a 2l(\'^\'+7D,\'i\');E km=2a 2l(\'\\.(B|nh)$\',\'i\');if(V.3N(3J)==-1&&V.3N(km)==-1&&V.3N(a1)===0&&q.G.5c){V=q.G.5c+\'://\'+V}}q.V.1U(1g,V,1Q);q.1a.4j()},1U:C(1g,V,1Q){1g=$.3k(1g.K(/<|>/g,\'\'));q.J.3d();E 1Z=q.J.3X();if(1g===\'\'&&V===\'\')F;if(1g===\'\'&&V!==\'\')1g=V;if(q.V.$Q){q.25.1U();E $V=q.V.$Q,$el=$V.3O();if($el.12>0){56($el.12){$el=$el.3O()}$el=$el.2h()}N{$el=$V}$V.1c(\'2k\',V);$el.1g(1g);if(1Q!==\'\'){$V.1c(\'1Q\',1Q)}N{$V.1K(\'1Q\')}q.J.9g($V);q.1e.1S()}N{if(q.L.1P(\'4b\')&&q.V.1g===\'\'){E $a=$(\'<a />\').1c(\'2k\',V).1g(1g);if(1Q!==\'\')$a.1c(\'1Q\',1Q);q.1Y.Q($a);q.J.9g($a)}N{E $a;if(q.L.1P(\'2E\')){$a=$(\'<a 2k="\'+V+\'">\').1g(1g);if(1Q!==\'\')$a.1c(\'1Q\',1Q);$a=$(q.1Y.Q($a));if(q.J.e1().1T(/\\s$/)){$a.3F(" ")}q.J.9g($a)}N{1l.3Z(\'nt\',O,V);$a=$(q.J.3B()).2q(\'a\',q.$T[0]);if(q.L.1P(\'4b\')){$a=$(\'a[k3=""]\')}if(1Q!==\'\')$a.1c(\'1Q\',1Q);$a.1K(\'1o\').1K(\'k3\');if(q.J.e1().1T(/\\s$/)){$a.3F(" ")}if(q.V.1g!==\'\'||q.V.1g!=1g){if(!q.G.1M&&1Z&&1Z.12<=1){$a.1g(1g)}q.J.9g($a)}}}q.1e.1S();q.1X.2u(\'nu\',$a)}3A($.1d(C(){q.1R.5n()},q),5)},6P:C(e){if(1s e!=\'1y\'&&e.2w){e.2w()}E 23=q.J.6I();if(!23)F;q.25.1U();E 2p=23.12;E 5n=[];2B(E i=0;i<2p;i++){if(23[i].1p===\'A\'){5n.2N(23[i])}E $Q=$(23[i]).2q(\'a\',q.$T[0]);$Q.2t($Q.26())}q.1X.2u(\'nv\',5n);$(\'.I-V-3q\').1u();q.1e.1S()},7O:C(3E){q.V.8g(3E,\'7O\')},2f:C(3E){q.V.8g(3E,\'2f\')},2S:C(3E){q.V.8g(3E,\'2S\')},8g:C(3E,1C){E 5n=q.J.kq([\'a\']);if(5n===O)F;$.1B(5n,C(){$(q)[1C](3E)})}}},2z:C(){F{kB:C(1k){F 1k==q.3j.70||1k==q.3j.a7},aD:C(){F q.G.a2&&(q.G.c1||q.G.bX||q.G.93)&&!q.L.4S(\'8o\')},30:C(){E 2z=q.2z,G=q.G;q.$T.1h(":6h(4R,1L,a,2F)").ni().26().bW(C(){F q.a8===3&&$.3k(q.5O)!=""&&!$(q).1r().is("2F")&&(q.5O.1T(G.2z.4v.72)||q.5O.1T(G.2z.4v.71)||q.5O.1T(G.2z.4v.M)||q.5O.1T(G.2z.4v.2i))}).1B(C(){E 1g=$(q).1g(),B=1g;if(G.93&&(B.1T(G.2z.4v.72)||B.1T(G.2z.4v.71))){B=2z.93(B)}N if(G.bX&&B.1T(G.2z.4v.M)){B=2z.kT(B)}N if(G.c1){B=2z.a2(B)}$(q).a6(1g.K(1g,B)).1u()});E ka=q.$T.1h(\'.I-2z-41\').1B(C(){E $el=$(q);$el.2S(\'I-2z-41\');if($el.1c(\'1G\')===\'\')$el.1K(\'1G\');F $el[0]});q.1X.2u(\'2z\',ka);q.1e.1S()},93:C(B){E bM=\'<4R 1G="I-2z-41" 2J="nm" 3n="no" 4t="\',bK=\'" nn="0" o0></4R>\';if(B.1T(q.G.2z.4v.72)){B=B.K(q.G.2z.4v.72,bM+\'//7n.72.a5/7i/$1\'+bK)}if(B.1T(q.G.2z.4v.71)){B=B.K(q.G.2z.4v.71,bM+\'//oI.71.a5/6Y/$2\'+bK)}F B},kT:C(B){E 3M=B.1T(q.G.2z.4v.M);if(3M){B=B.K(B,\'<1L 4t="\'+3M+\'" 1G="I-2z-41" />\');if(q.G.1M){if(!q.L.3z(q.1e.1b())){B=\'<br>\'+B}}B+=\'<br>\'}F B},a2:C(B){E 3M=B.1T(q.G.2z.4v.2i);if(3M){3M=$.oJ(3M,C(v,k){F $.3t(v,3M)===k});E 12=3M.12;2B(E i=0;i<12;i++){E 2k=3M[i],1g=2k,5c=q.G.5c+\'://\';if(2k.1T(/(5o?|8K):\\/\\//i)!==4e){5c=""}if(1g.12>q.G.cs){1g=1g.aB(0,q.G.cs)+\'...\'}1g=fl(1g);E cu="\\\\b";if($.3t(2k.ct(-1),["/","&","="])!=-1){cu=""}E kx=2a 2l(\'(\'+2k.K(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,"\\\\$&")+cu+\')\',\'g\');B=B.K(kx,\'<a 2k="\'+5c+$.3k(2k)+\'" 1G="I-2z-41">\'+$.3k(1g)+\'</a>\')}}F B}}},2e:C(){F{3m:C(4H){q.3f.1u();if(!q.L.1P(\'2E\'))q.$T.2n();q.25.1U();q.J.3o();E 1r=q.J.67();E $2e=$(1r).2q(\'ol, 3p\',q.$T[0]);if(!q.L.4p($2e)&&$2e.12!==0){$2e=O}E cq,cn;E 1u=O;if($2e&&$2e.12){1u=1q;E cr=$2e[0].1p;cq=(4H===\'5z\'&&cr===\'8D\');cn=(4H===\'5m\'&&cr===\'8N\')}if(cq){q.L.4I($2e,\'ol\')}N if(cn){q.L.4I($2e,\'3p\')}N{if(1u){q.2e.1u(4H,$2e)}N{q.2e.1Y(4H)}}q.J.3d();q.1e.1S()},1Y:C(4H){E 1z=q.J.3B();E $2Y=$(1z).2q(\'2Y, 5P\',q.$T[0]);if(q.L.1P(\'2E\')&&q.G.1M){q.2e.aR(4H)}N{1l.3Z(\'1Y\'+4H)}E 1r=q.J.67();E $2e=$(1r).2q(\'ol, 3p\',q.$T[0]);if($2Y.12!==0){E iK=$2Y.8O();$2Y.3F(iK).1u(\'\')}if(q.L.3z($2e.1h(\'li\').1g())){E $3O=$2e.3O(\'li\');$3O.1h(\'br\').1u();$3O.1F(q.J.5a());if(q.G.1M&&q.L.1P(\'4b\')&&$3O.9B()==2&&q.L.3z($3O.eq(1).1g())){$3O.eq(1).1u()}}if($2e.12){E $7X=$2e.1r();if(q.L.4p($7X)&&$7X[0].1p!=\'5v\'&&q.L.6X($7X[0])){$7X.2t($7X.26())}}if(!q.L.1P(\'2E\')){q.$T.2n()}q.1x.4r()},aR:C(4H){E 4M=q.J.5Z(\'1i\');E aP=$(4M).B();E 85=(4H==\'5z\')?$(\'<ol>\'):$(\'<3p>\');E 8c=$(\'<li>\');if($.3k(aP)===\'\'){8c.1F(q.J.5a());85.1F(8c);q.$T.1h(\'#J-2r-1\').2t(85)}N{E 8k=aP.4o(/<br\\s?\\/?>/gi);if(8k){2B(E i=0;i<8k.12;i++){if($.3k(8k[i])!==\'\'){85.1F($(\'<li>\').B(8k[i]))}}}N{8c.1F(aP);85.1F(8c)}$(4M).2t(85)}},1u:C(4H,$2e){if($.3t(\'3p\',q.J.3X()))4H=\'5m\';1l.3Z(\'1Y\'+4H);E $1z=$(q.J.3B());q.3y.aO();if(!q.G.1M&&$1z.2q(\'li, 5P, 2Y\',q.$T[0]).12===0){1l.3Z(\'9S\',O,\'p\');q.$T.1h(\'3p, ol, 29\').1B($.1d(q.L.4f,q))}E $3W=$(q.J.3B()).2q(\'3W\',q.$T[0]);E $4G=$3W.4G();if(!q.G.1M&&$3W.12!==0&&$4G.12!==0&&$4G[0].1p==\'58\'){$4G.1u()}q.1x.4r()}}},1a:C(){F{aM:{},iW:C(){q.G.1a={iX:6f()+\'<49 id="I-1a-M-7L">\'+\'<2L>\'+q.1H.1b(\'1J\')+\'</2L>\'+\'<3D 1m="1g" id="I-M-1J" />\'+\'<2L 1G="I-M-V-42">\'+q.1H.1b(\'V\')+\'</2L>\'+\'<3D 1m="1g" id="I-M-V" 1G="I-M-V-42" 4K-2L="\'+q.1H.1b(\'V\')+\'" />\'+\'<2L 1G="I-M-V-42"><3D 1m="iP" id="I-M-V-7Z" 4K-2L="\'+q.1H.1b(\'aL\')+\'"> \'+q.1H.1b(\'aL\')+\'</2L>\'+\'<2L 1G="I-M-4g-42">\'+q.1H.1b(\'cC\')+\'</2L>\'+\'<7z 1G="I-M-4g-42" id="I-M-5g" 4K-2L="\'+q.1H.1b(\'cC\')+\'">\'+\'<42 1E="5p">\'+q.1H.1b(\'5p\')+\'</42>\'+\'<42 1E="2c">\'+q.1H.1b(\'2c\')+\'</42>\'+\'<42 1E="5u">\'+q.1H.1b(\'5u\')+\'</42>\'+\'<42 1E="4s">\'+q.1H.1b(\'4s\')+\'</42>\'+\'</7z>\'+\'</49>\',M:6f()+\'<49 id="I-1a-M-1Y">\'+\'<1i id="I-1a-M-4d"></1i>\'+\'</49>\',22:6f()+\'<49 id="I-1a-22-1Y">\'+\'<1i id="I-1a-22-1v-2Q">\'+\'<2L>\'+q.1H.1b(\'6k\')+\'</2L>\'+\'<3D 1m="1g" id="I-6k" 4K-2L="\'+q.1H.1b(\'6k\')+\'" /><br><br>\'+\'<1i id="I-1a-22-1v"></1i>\'+\'</1i>\'+\'</49>\',V:6f()+\'<49 id="I-1a-V-1Y">\'+\'<2L>cD</2L>\'+\'<3D 1m="2i" id="I-V-2i" 4K-2L="cD" />\'+\'<2L>\'+q.1H.1b(\'1g\')+\'</2L>\'+\'<3D 1m="1g" id="I-V-2i-1g" 4K-2L="\'+q.1H.1b(\'1g\')+\'" />\'+\'<2L><3D 1m="iP" id="I-V-7Z"> \'+q.1H.1b(\'aL\')+\'</2L>\'+\'</49>\'};$.7E(q.G,q.G.1a)},cB:C(1w,2A){q.1a.aM[1w]=2A},oX:C($1a){q.1a.$94=$(\'<1i>\').1c(\'id\',\'I-1a-94\');$1a.6t(q.1a.$94)},oY:C(id,1w,8Z){E $5I=$(\'<a 2k="#" 3T="5I\'+id+\'">\').1g(1w);if(8Z){$5I.2f(\'8Z\')}E 3u=q;$5I.on(\'2y\',C(e){e.2w();$(\'.I-5I\').3v();$(\'.I-\'+$(q).1c(\'3T\')).2O();3u.1a.$94.1h(\'a\').2S(\'8Z\');$(q).2f(\'8Z\')});q.1a.$94.1F($5I)},oZ:C(1w,ic){q.G.1a[1w]=ic},i9:C(1w){F q.G.1a[1w]},oU:C(){F q.$aX.1h(\'49\')},2R:C(62,1J,2J){q.1a.62=62;q.1a.2J=2J;q.1a.2o();q.1a.jr();q.1a.i7(1J);q.1a.ik();q.1a.i8();if(1s q.1a.aM[62]!=\'1y\'){q.1a.aM[62].6e(q)}},2O:C(){q.L.d8();if(q.L.6M()){q.1a.cx()}N{q.1a.aZ()}if(q.G.cA){q.$4F.2f("I-1a-jP")}q.$74.2O();q.$4F.2O();q.$1a.1c(\'6S\',\'-1\');q.$1a.2n();q.1a.ip();q.L.8z();if(!q.L.6M()){3A($.1d(q.1a.aZ,q),0);$(3l).on(\'4J.I-1a\',$.1d(q.1a.4J,q))}q.1X.2u(\'oP\',q.1a.62,q.$1a);$(1l).3h(\'oO.1a\');q.$1a.1h(\'3D[1m=1g],3D[1m=2i],3D[1m=oQ]\').on(\'1D.I-1a\',$.1d(q.1a.iu,q))},aZ:C(){E 3n=q.$1a.oR();E aT=$(3l).3n();E 7u=$(3l).2J();if(q.1a.2J>7u){q.$1a.1O({2J:\'96%\',63:(aT/2-3n/2)+\'px\'});F}if(3n>aT){q.$1a.1O({2J:q.1a.2J+\'px\',63:\'oS\'})}N{q.$1a.1O({2J:q.1a.2J+\'px\',63:(aT/2-3n/2)+\'px\'})}},cx:C(){q.$1a.1O({2J:\'96%\',63:\'2%\'})},4J:C(){if(q.L.6M()){q.1a.cx()}N{q.1a.aZ()}},i7:C(1J){q.$9e.B(1J)},i8:C(){q.$aX.B(q.1a.i9(q.1a.62))},ik:C(){if(1s $.fn.iv===\'1y\')F;q.$1a.iv({iw:q.$9e});q.$9e.1O(\'oa\',\'oc\')},iu:C(e){if(e.7U!=13)F;e.2w();q.$1a.1h(\'1t.I-1a-7M-21\').2y()},cy:C(){E 1t=$(\'<1t>\').2f(\'I-1a-21 I-1a-4j-21\').B(q.1H.1b(\'it\'));1t.on(\'2y\',$.1d(q.1a.4j,q));q.$9i.1F(1t)},io:C(2L){F q.1a.cm(2L,\'83\')},cz:C(2L){F q.1a.cm(2L,\'7M\')},cm:C(2L,3E){E 1t=$(\'<1t>\').2f(\'I-1a-21\').2f(\'I-1a-\'+3E+\'-21\').B(2L);q.$9i.1F(1t);F 1t},ip:C(){E 4i=q.$9i.1h(\'1t\');E cl=4i.12;if(cl===0)F;4i.1O(\'2J\',(88/cl)+\'%\')},2o:C(){q.1a.jw();q.$4F=$(\'<1i id="I-1a-2Q"/>\').3v();q.$1a=$(\'<1i id="I-1a" 9c="o9" 4K-o8="I-1a-87" />\');q.$9e=$(\'<87 id="I-1a-87"/>\');q.$8X=$(\'<1t 1m="1t" id="I-1a-4j" 6S="1" 4K-2L="o3" />\').B(\'&o2;\');q.$aX=$(\'<1i id="I-1a-31" />\');q.$9i=$(\'<c8 />\');q.$1a.1F(q.$9e);q.$1a.1F(q.$8X);q.$1a.1F(q.$aX);q.$1a.1F(q.$9i);q.$4F.1F(q.$1a);q.$4F.aU(1l.31)},jw:C(){q.$74=$(\'<1i id="I-1a-o5">\').3v();$(\'31\').6t(q.$74)},jr:C(){q.$8X.on(\'2y.I-1a\',$.1d(q.1a.4j,q));$(1l).on(\'2s.I-1a\',$.1d(q.1a.9a,q));q.$T.on(\'2s.I-1a\',$.1d(q.1a.9a,q));q.$4F.on(\'2y.I-1a\',$.1d(q.1a.4j,q))},jC:C(){q.$8X.3h(\'2y.I-1a\');$(1l).3h(\'2s.I-1a\');q.$T.3h(\'2s.I-1a\');q.$4F.3h(\'2y.I-1a\');$(3l).3h(\'4J.I-1a\')},9a:C(e){if(e.7U!=q.3j.b2)F;q.1a.4j(O)},4j:C(e){if(e){if(!$(e.1Q).3i(\'I-1a-4j-21\')&&e.1Q!=q.$8X[0]&&e.1Q!=q.$4F[0]){F}e.2w()}if(!q.$4F)F;q.1a.jC();q.L.bJ();q.$74.1u();q.$4F.iM(\'of\',$.1d(C(){q.$4F.1u();3A($.1d(q.L.bk,q),0);if(e!==1y)q.J.3d();$(1l.31).1O(\'bI\',q.1a.og);q.1X.2u(\'ot\',q.1a.62)},q))}}},1R:C(){F{2R:C(){if(1s q.G.jL!="1y")F;if(q.L.1P(\'2E\')){E 3u=q;q.$T.1h(\'2F, 1e\').on(\'ay\',C(){3u.$T.1c(\'5d\',O);$(q).1c(\'5d\',1q)}).on(\'az\',C(){3u.$T.1c(\'5d\',1q);$(q).1K(\'5d\')})}q.1R.au();q.1R.5n()},1A:C(e,2g){q.1R.4i(e,2g);q.1R.79()},c7:C($el,$1z){if(1s $1z==\'1y\'){E $1z=$(q.J.3B())}F $1z.is($el)||$1z.dL($el).12>0},79:C(){E $1z=$(q.J.3B());$.1B(q.G.1R.79,$.1d(C(1k,1E){E 1R=1E.1R,2j=1R.2j,$2x=1E.2x,c3=1s 1R[\'in\']!=\'1y\'?1R[\'in\']:O,c6=1s 1R[\'2m\']!=\'1y\'?1R[\'2m\']:O;if($1z.2q(2j).9B()>0){q.1R.c4($2x,c3,c6)}N{q.1R.c4($2x,c6,c3)}},q))},c4:C($2x,9s,ax){if(ax&&1s ax[\'1c\']!=\'1y\'){q.1R.c5($2x,ax.1c,1q)}if(1s 9s[\'1c\']!=\'1y\'){q.1R.c5($2x,9s.1c)}if(1s 9s[\'1J\']!=\'1y\'){$2x.1g(9s[\'1J\'])}},c5:C($2x,jq,cb){$.1B(jq,C(1k,1E){if(1k==\'1G\'){if(!cb){$2x.2f(1E)}N{$2x.2S(1E)}}N{if(!cb){$2x.1c(1k,1E)}N{$2x.1K(1k)}}})},cc:C($2x,2g,2X){if(1s 2X.1R=="1y")F;2X.2x=$2x;q.G.1R.79.2N(2X)},4i:C(e,2g){E 1z=q.J.3B();E 1r=q.J.67();if(e!==O){q.1t.cj()}N{q.1t.cj(2g)}if(e===O&&2g!==\'B\'){if($.3t(2g,q.G.b5)!=-1)q.1t.oq(2g);F}$.1B(q.G.cg,$.1d(C(1k,1E){E aw=$(1r).2q(1k,q.$T[0]);E ck=$(1z).2q(1k,q.$T[0]);if(aw.12!==0&&!q.L.4p(aw))F;if(!q.L.4p(ck))F;if(aw.12!==0||ck.2q(1k,q.$T[0]).12!==0){q.1t.9q(1E)}},q));E $1r=$(1r).2q(q.G.8F.4y().3e(),q.$T[0]);if(q.L.4p(1r)&&$1r.12){E 5g=($1r.1O(\'1g-5g\')===\'\')?\'2c\':$1r.1O(\'1g-5g\');q.1t.9q(\'5g\'+5g)}},oi:C(Y,2g){q.G.b5.2N(2g);q.G.cg[Y]=2g},au:C(){q.$T.1h(\'1L\').1B($.1d(C(i,1L){E $1L=$(1L);$1L.2q(\'a\',q.$T[0]).on(\'2y\',C(e){e.2w()});if(q.L.1P(\'2E\'))$1L.1c(\'oh\',\'on\');q.M.j1($1L)},q));$(1l).on(\'2y.I-M-83.\'+q.2G,$.1d(C(e){q.1R.M=O;if(e.1Q.1p==\'aA\'&&q.L.4p(e.1Q)){q.1R.M=(q.1R.M&&q.1R.M==e.1Q)?O:e.1Q}},q))},5n:C(){if(!q.G.j4)F;q.$T.1h(\'a\').on(\'5H.I.\'+q.2G+\' 2y.I.\'+q.2G,$.1d(q.1R.jc,q));q.$T.on(\'5H.I.\'+q.2G+\' 2y.I.\'+q.2G,$.1d(q.1R.cf,q));$(1l).on(\'5H.I.\'+q.2G+\' 2y.I.\'+q.2G,$.1d(q.1R.cf,q))},jl:C($V){F $V.2I()},jc:C(e){E $el=$(e.1Q);if($el[0].1p==\'aA\')F;if($el[0].1p!==\'A\')$el=$el.2q(\'a\',q.$T[0]);if($el[0].1p!==\'A\')F;E $V=$el;E 3s=q.1R.jl($V);E 3q=$(\'<1j 1G="I-V-3q"></1j>\');E 2k=$V.1c(\'2k\');if(2k===1y){2k=\'\'}if(2k.12>24)2k=2k.aB(0,24)+\'...\';E jj=$(\'<a 2k="\'+$V.1c(\'2k\')+\'" 1Q="7K" />\').B(2k).2f(\'I-V-3q-7M\');E jf=$(\'<a 2k="#" />\').B(q.1H.1b(\'7L\')).on(\'2y\',$.1d(q.V.2O,q)).2f(\'I-V-3q-7M\');E je=$(\'<a 2k="#" />\').B(q.1H.1b(\'6P\')).on(\'2y\',$.1d(q.V.6P,q)).2f(\'I-V-3q-7M\');3q.1F(jj).1F(\' | \').1F(jf).1F(\' | \').1F(je);3q.1O({2U:(3s.2U+5L($V.1O(\'3K-3n\'),10))+\'px\',2c:3s.2c+\'px\'});$(\'.I-V-3q\').1u();$(\'31\').1F(3q)},cf:C(e){e=e.7T||e;E 1Q=e.1Q;E $1r=$(1Q).2q(\'a\',q.$T[0]);if($1r.12!==0&&$1r[0].1p===\'A\'&&1Q.1p!==\'A\'){F}N if((1Q.1p===\'A\'&&q.L.4p(1Q))||$(1Q).3i(\'I-V-3q-7M\')){F}$(\'.I-V-3q\').1u()}}},2V:C(){F{2R:C(B){if(q.G.1M)F B;if(B===\'\'||B===\'<p></p>\')F q.G.5S;B=B+"\\n";q.2V.aC=[];q.2V.z=0;B=B.K(/(<br\\s?\\/?>){1,}\\n?<\\/29>/gi,\'</29>\');B=q.2V.jk(B);B=q.2V.j6(B);B=q.2V.jF(B);B=q.2V.jp(B);B=q.2V.8M(B);B=q.2V.j7(B);B=B.K(2a 2l(\'<br\\\\s?/?>\\n?<(\'+q.G.ej.3c(\'|\')+\')(.*?[^>])>\',\'gi\'),\'<p><br /></p>\\n<$1$2>\');F $.3k(B)},jk:C(B){E $1i=$(\'<1i />\').1F(B);$1i.1h(\'29 p\').2t(C(){F $(q).1F(\'<br />\').26()});B=$1i.B();$1i.1h(q.G.ej.3c(\', \')).1B($.1d(C(i,s){q.2V.z++;q.2V.aC[q.2V.z]=s.7v;B=B.K(s.7v,\'\\n{K\'+q.2V.z+\'}\')},q));F B},j6:C(B){E dX=B.1T(/<!--([\\w\\W]*?)-->/gi);if(!dX)F B;$.1B(dX,$.1d(C(i,s){q.2V.z++;q.2V.aC[q.2V.z]=s;B=B.K(s,\'\\n{K\'+q.2V.z+\'}\')},q));F B},j7:C(B){$.1B(q.2V.aC,C(i,s){s=(1s s!==\'1y\')?s.K(/\\$/g,\'$\'):s;B=B.K(\'{K\'+i+\'}\',s)});F B},jp:C(B){E 4O=B.4o(2a 2l(\'\\n\',\'g\'),-1);B=\'\';if(4O){E 2p=4O.12;2B(E i=0;i<2p;i++){if(!4O.ow(i))F;if(4O[i].3N(\'{K\')==-1){4O[i]=4O[i].K(/<p>\\n\\t?<\\/p>/gi,\'\');4O[i]=4O[i].K(/<p><\\/p>/gi,\'\');if(4O[i]!==\'\'){B+=\'<p>\'+4O[i].K(/^\\n+|\\n+$/g,"")+"</p>"}}N B+=4O[i]}}F B},jF:C(B){B=B.K(/<br \\/>\\s*<br \\/>/gi,"\\n\\n");B=B.K(/<br\\s?\\/?>\\n?<br\\s?\\/?>/gi,"\\n<br /><br />");B=B.K(2a 2l("\\r\\n",\'g\'),"\\n");B=B.K(2a 2l("\\r",\'g\'),"\\n");B=B.K(2a 2l("/\\n\\n+/"),\'g\',"\\n\\n");F B},8M:C(B){B=B.K(2a 2l(\'</29></p>\',\'gi\'),\'</29>\');B=B.K(2a 2l(\'<p></29>\',\'gi\'),\'</29>\');B=B.K(2a 2l(\'<p><29>\',\'gi\'),\'<29>\');B=B.K(2a 2l(\'<29></p>\',\'gi\'),\'<29>\');B=B.K(2a 2l(\'<p><p \',\'gi\'),\'<p \');B=B.K(2a 2l(\'<p><p>\',\'gi\'),\'<p>\');B=B.K(2a 2l(\'</p></p>\',\'gi\'),\'</p>\');B=B.K(2a 2l(\'<p>\\\\s?</p>\',\'gi\'),\'\');B=B.K(2a 2l("\\n</p>",\'gi\'),\'</p>\');B=B.K(2a 2l(\'<p>\\t?\\t?\\n?<p>\',\'gi\'),\'<p>\');B=B.K(2a 2l(\'<p>\\t*</p>\',\'gi\'),\'\');F B}}},5C:C(){F{3Q:C(e){if(!q.G.jJ){3A($.1d(q.1e.1S,q),1);F}q.7B=1q;q.25.1U();q.J.3o();q.L.8z();q.5C.ju();$(3l).on(\'6b.I-jv\',$.1d(C(){$(3l).3U(q.bm)},q));3A($.1d(C(){E B=q.$5e.B();q.$5e.1u();q.J.3d();q.L.bk();q.5C.1Y(B);$(3l).3h(\'6b.I-jv\');if(q.2z.aD())q.2z.30()},q),1)},ju:C(){q.$5e=$(\'<1i>\').B(\'\').1c(\'5d\',\'1q\').1O({4g:\'82\',2J:0,2U:0,2c:\'-o4\'});if(q.L.1P(\'2E\')){q.$2Q.1F(q.$5e)}N{if($(\'.1a-31\').12>0){$(\'.1a-31\').1F(q.$5e)}N{$(\'31\').1F(q.$5e)}}q.$5e.2n()},1Y:C(B){B=q.1X.2u(\'od\',B);B=(q.L.9w())?q.1x.8y(B,O):q.1x.8y(B);B=q.1X.2u(\'5C\',B);if(q.L.9w()){q.1Y.1U(B,O)}N{q.1Y.B(B,O)}q.L.8U();q.7B=O;3A($.1d(q.1x.4r,q),10);3A($.1d(C(){E ii=q.$T.1h(\'1j\');$.1B(ii,C(i,s){E B=s.3x.K(/\\6g/,\'\');if(B===\'\'&&s.4u.12===0)$(s).1u()})},q),10)}}},3f:C(){F{9Q:C(){if(!q.3f.is())F;q.$T.1c(\'3f\',q.$2j.1c(\'3f\'));q.3f.3m();q.$T.on(\'1D.I-3f\',$.1d(q.3f.3m,q))},3m:C(){3A($.1d(C(){E 1C=q.L.3z(q.$T.B(),O)?\'2f\':\'2S\';q.$T[1C](\'I-3f\')},q),5)},1u:C(){q.$T.2S(\'I-3f\')},is:C(){if(q.G.3f){F q.$2j.1c(\'3f\',q.G.3f)}N{F!(1s q.$2j.1c(\'3f\')==\'1y\'||q.$2j.1c(\'3f\')===\'\')}}}},5E:C(){F{2O:C(){$(1l.31).1F($(\'<1i id="I-5E"><1j></1j></1i>\'));$(\'#I-5E\').oN()},3v:C(){$(\'#I-5E\').iM(oM,C(){$(q).1u()})}}},J:C(){F{1b:C(){q.2T=1l.4D();if(1l.4D&&q.2T.6l&&q.2T.7A){q.14=q.2T.6l(0)}N{q.14=1l.92()}},4l:C(){52{q.2T.8T()}51(e){}q.2T.4l(q.14)},3B:C(){E el=O;q.J.1b();if(q.2T&&q.2T.7A>0){el=q.2T.6l(0).ko}F q.L.4p(el)},67:C(4V){4V=4V||q.J.3B();if(4V){F q.L.4p($(4V).1r()[0])}F O},iG:C(){F 3l.4D().iI.oB},oz:C(){F 3l.4D().iI.oA},4a:C(Q){Q=Q||q.J.3B();56(Q){if(q.L.7J(Q.1p)){F($(Q).3i(\'I-T\'))?O:Q}Q=Q.e4}F O},e8:C(23,2d){q.J.1b();if(q.14&&q.14.53){F O}E 5U=[];23=(1s 23==\'1y\'||23===O)?q.J.6I():23;E 4N=q.G.4N;4N.2N(\'1j\');if(1s 2d!==\'1y\'){2B(E i=0;i<2d.12;i++){4N.2N(2d[i])}}$.1B(23,$.1d(C(i,Q){if($.3t(Q.1p.3e(),4N)!=-1){5U.2N(Q)}},q));F(5U.12===0)?O:5U},kq:C(2d){q.J.1b();if(q.14&&q.14.53){F O}E 5U=[];E 23=q.J.6I();$.1B(23,$.1d(C(i,Q){if($.3t(Q.1p.3e(),2d)!=-1){5U.2N(Q)}},q));F(5U.12===0)?O:5U},3X:C(23){q.J.1b();if(q.14&&q.14.53){F[q.J.4a()]}E 1Z=[];23=(1s 23==\'1y\')?q.J.6I():23;$.1B(23,$.1d(C(i,Q){if(q.L.6X(Q)){q.J.kI=Q;1Z.2N(Q)}},q));F(1Z.12===0)?[q.J.4a()]:1Z},kJ:C(){F q.J.kI},6I:C(){q.J.1b();E 78=q.J.ei(1);E 9J=q.J.ei(2);if(q.14.53===O){if(3l.4D){E 2T=3l.4D();if(2T.7A>0){E 14=2T.6l(0);E kf=14.ko,ef=14.ef;E 7F=14.7S();7F.43(O);7F.3L(9J);7F.2W(kf,ef);7F.43(1q);7F.3L(78);14.9I(78);14.ks(9J);2T.8T();2T.4l(14)}}}N{q.J.k0(q.14,78,1q);9J=78}E 23=[];E 9z=0;E 3u=q;q.$T.1h(\'*\').1B(C(){if(q==78){E 1r=$(q).1r();if(1r.12!==0&&1r[0].1p!=\'e6\'&&3u.L.4p(1r[0])){23.2N(1r[0])}23.2N(q);9z=1}N{if(9z>0){23.2N(q);9z=9z+1}}if(q==9J){F O}});E eb=[];E 2p=23.12;2B(E i=0;i<2p;i++){if(23[i].id!=\'23-2r-1\'&&23[i].id!=\'23-2r-2\'){eb.2N(23[i])}}q.J.kp();F eb},ei:C(6d){F $(\'<1j id="23-2r-\'+6d+\'" 1G="I-23-2r" 1f-3H="I">\'+q.G.6o+\'</1j>\')[0]},k0:C(14,Q,1m){E 14=14.7S();52{14.43(1m);14.3L(Q)}51(e){}},kp:C(){$(1l).1h(\'1j.I-23-2r\').1u();q.$T.1h(\'1j.I-23-2r\').1u()},nQ:C(2b,2h){q.1V.eh(2b,2h)},5Z:C(Y){q.J.1b();if(q.14.53)F O;E 4M=1l.3w(Y);4M.81(q.14.nT());q.14.3L(4M);F 4M},9g:C(Q){if(q.L.1P(\'4b\')){Q=Q[0]||Q;E 14=1l.92();14.9j(Q)}N{q.1V.1U(Q,0,Q,1)}},bd:C(){q.J.1b();q.14.9j(q.$T[0]);q.J.4l()},1u:C(){q.J.1b();q.2T.8T()},3o:C(){q.J.g2()},g2:C(){q.J.1b();E 5M=q.J.6Q(1);q.J.ed(q.14,5M,1q);if(q.14.53===O){E 9C=q.J.6Q(2);q.J.ed(q.14,9C,O)}q.eT=q.$T.B()},6Q:C(6d){if(1s 6d==\'1y\')6d=1;F $(\'<1j id="J-2r-\'+6d+\'" 1G="I-J-2r" 1f-3H="I">\'+q.G.6o+\'</1j>\')[0]},5a:C(6d){F q.L.6q(q.J.6Q(6d))},ed:C(14,Q,1m){14=14.7S();52{14.43(1m);14.3L(Q)}51(e){q.2n.2W()}},3d:C(){E 5M=q.$T.1h(\'1j#J-2r-1\');E 9C=q.$T.1h(\'1j#J-2r-2\');if(q.L.1P(\'4b\')){q.$T.2n()}if(5M.12!==0&&9C.12!==0){q.1V.1U(5M,0,9C,0)}N if(5M.12!==0){q.1V.1U(5M,0,5M,0)}N{q.$T.2n()}q.J.8p();q.eT=O},8p:C(){q.$T.1h(\'1j.I-J-2r\').1B(C(i,s){E 1g=$(s).1g().K(/\\6g/g,\'\');if(1g===\'\')$(s).1u();N $(s).2t(C(){F $(q).26()})})},e1:C(){q.J.1b();F q.2T.4y()},q5:C(){E B=\'\';q.J.1b();if(q.2T.7A){E dY=1l.3w(\'1i\');E 2p=q.2T.7A;2B(E i=0;i<2p;++i){dY.81(q.2T.6l(i).qN())}B=dY.3x}F q.1x.9R(B)},go:C(B){q.J.1b();q.14.55();E 1i=1l.3w("1i");1i.3x=B;E 4L=1l.9M(),4w;56((4w=1i.9N)){4L.81(4w)}q.14.3L(4L)},qE:C(B){B=q.J.5a(1)+B+q.J.5a(2);q.J.1b();if(3l.4D&&3l.4D().6l){q.J.go(B)}N if(1l.J&&1l.J.92){q.14.gw(B)}q.J.3d();q.1e.1S()}}},6m:C(){F{3Q:C(e,1k){if(!q.G.6m){if((e.9u||e.6J)&&(1k===66||1k===73))e.2w();F O}$.1B(q.G.6m,$.1d(C(5f,4A){E 4X=5f.4o(\',\');E 2p=4X.12;2B(E i=0;i<2p;i++){if(1s 4X[i]===\'6Z\'){q.6m.7N(e,$.3k(4X[i]),$.1d(C(){E 1C;if(4A.1C.3N(/\\./)!=\'-1\'){1C=4A.1C.4o(\'.\');if(1s q[1C[0]]!=\'1y\'){q[1C[0]][1C[1]].9E(q,4A.6p)}}N{q[4A.1C].9E(q,4A.6p)}},q))}}},q))},7N:C(e,4X,fq){E g5={8:"pS",9:"5I",10:"F",13:"F",16:"6E",17:"48",18:"80",19:"pB",20:"pA",27:"py",32:"3g",33:"pE",34:"pF",35:"2h",36:"lb",37:"2c",38:"ls",39:"4s",40:"l8",45:"1Y",46:"4h",59:";",61:"=",96:"0",97:"1",98:"2",99:"3",88:"4",mN:"5",mS:"6",mT:"7",ln:"8",le:"9",mP:"*",lY:"+",me:"-",md:".",m4:"/",lV:"f1",mJ:"f2",q1:"f3",mD:"f4",pN:"f5",pa:"f6",p9:"f7",p3:"f8",ps:"f9",pk:"pZ",qD:"qF",qA:"qu",qw:"qx",qz:"6b",qS:"-",qR:";",qJ:"=",q9:",",q8:"-",qo:".",ql:"/",qh:"`",e5:"[",nG:"\\\\",ek:"]",nF:"\'"};E e9={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"nM","=":"+",";":": ","\'":"\\"",",":"<",".":">","/":"?","\\\\":"|"};4X=4X.3e().4o(" ");E bu=g5[e.3j],9h=6f.nW(e.7U).3e(),86="",7j={};$.1B(["80","48","5h","6E"],C(68,bz){if(e[bz+\'nX\']&&bu!==bz){86+=bz+\'+\'}});if(bu)7j[86+bu]=1q;if(9h){7j[86+9h]=1q;7j[86+e9[9h]]=1q;if(86==="6E+"){7j[e9[9h]]=1q}}2B(E i=0,2p=4X.12;i<2p;i++){if(7j[4X[i]]){e.2w();F fq.9E(q,fA)}}}}},2H:C(){F{1b:C(1e){if(!q.G.2H)F 1e;E dZ=[\'fx\',\'31\',\'e0\',\'hr\',\'i?n9\',\'V\',\'5h\',\'n5\',\'1o\',\'3V\',\'3W\',\'ee\',\'e7\',\'e3\'];E e2=[\'li\',\'dt\',\'dt\',\'h[1-6]\',\'42\',\'3V\'];E 8H=[\'p\',\'29\',\'1i\',\'dl\',\'iT\',\'64\',\'oV\',\'iA\',\'ol\',\'2F\',\'7z\',\'2Y\',\'5P\',\'6O\',\'3p\'];q.2H.jE=2a 2l(\'^<(/?\'+dZ.3c(\'|/?\')+\'|\'+e2.3c(\'|\')+\')[ >]\');q.2H.j8=2a 2l(\'^<(br|/?\'+dZ.3c(\'|/?\')+\'|/\'+e2.3c(\'|/\')+\')[ >]\');q.2H.8H=2a 2l(\'^</?(\'+8H.3c(\'|\')+\')[ >]\');E i=0,bl=1e.12,3S=0,2b=4e,2h=4e,Y=\'\',2m=\'\',5b=\'\';q.2H.8L=0;2B(;i<bl;i++){3S=i;if(-1==1e.4x(i).4Q(\'<\')){2m+=1e.4x(i);F q.2H.eg(2m)}56(3S<bl&&1e.6a(3S)!=\'<\'){3S++}if(i!=3S){5b=1e.4x(i,3S-i);if(!5b.1T(/^\\s{2,}$/g)){if(\'\\n\'==2m.6a(2m.12-1))2m+=q.2H.7r();N if(\'\\n\'==5b.6a(0)){2m+=\'\\n\'+q.2H.7r();5b=5b.K(/^\\s+/,\'\')}2m+=5b}if(5b.1T(/\\n/))2m+=\'\\n\'+q.2H.7r()}2b=3S;56(3S<bl&&\'>\'!=1e.6a(3S)){3S++}Y=1e.4x(2b,3S-2b);i=3S;E t;if(\'!--\'==Y.4x(1,3)){if(!Y.1T(/--$/)){56(\'-->\'!=1e.4x(3S,3)){3S++}3S+=2;Y=1e.4x(2b,3S-2b);i=3S}if(\'\\n\'!=2m.6a(2m.12-1))2m+=\'\\n\';2m+=q.2H.7r();2m+=Y+\'>\\n\'}N if(\'!\'==Y[1]){2m=q.2H.bD(Y+\'>\',2m)}N if(\'?\'==Y[1]){2m+=Y+\'>\\n\'}N if(t=Y.1T(/^<(3V|1o|2F)/i)){t[1]=t[1].3e();Y=q.2H.ec(Y);2m=q.2H.bD(Y,2m);2h=6f(1e.4x(i+1)).3e().4Q(\'</\'+t[1]);if(2h){5b=1e.4x(i+1,2h);i+=2h;2m+=5b}}N{Y=q.2H.ec(Y);2m=q.2H.bD(Y,2m)}}F q.2H.eg(2m)},7r:C(){E s=\'\';2B(E j=0;j<q.2H.8L;j++){s+=\'\\t\'}F s},eg:C(1e){1e=1e.K(/\\n\\s*\\n/g,\'\\n\');1e=1e.K(/^[\\s\\n]*/,\'\');1e=1e.K(/[\\s\\n]*$/,\'\');1e=1e.K(/<3V(.*?)>\\n<\\/3V>/gi,\'<3V$1></3V>\');q.2H.8L=0;F 1e},ec:C(Y){E 8E=\'\';Y=Y.K(/\\n/g,\' \');Y=Y.K(/\\s{2,}/g,\' \');Y=Y.K(/^\\s+|\\s+$/g,\' \');E ea=\'\';if(Y.1T(/\\/$/)){ea=\'/\';Y=Y.K(/\\/+$/,\'\')}E m;56(m=/\\s*([^= ]+)(?:=(([\'"\']).*?\\3|[^ ]+))?/.5j(Y)){if(m[2])8E+=m[1].3e()+\'=\'+m[2];N if(m[1])8E+=m[1].3e();8E+=\' \';Y=Y.4x(m[0].12)}F 8E.K(/\\s*$/,\'\')+ea+\'>\'},bD:C(Y,2m){E nl=Y.1T(q.2H.8H);if(Y.1T(q.2H.jE)||nl){2m=2m.K(/\\s*$/,\'\');2m+=\'\\n\'}if(nl&&\'/\'==Y.6a(1))q.2H.8L--;if(\'\\n\'==2m.6a(2m.12-1))2m+=q.2H.7r();if(nl&&\'/\'!=Y.6a(1))q.2H.8L++;2m+=Y;if(Y.1T(q.2H.j8)||Y.1T(q.2H.8H)){2m=2m.K(/ *$/,\'\')}F 2m}}},1I:C(){F{ja:C(){if(q.G.4z)q.G.4c=O;if(q.G.4T)q.G.1K=O;if(q.G.1M)F;E 2d=[\'p\',\'49\'];if(q.G.4z)q.1I.jd(2d);if(q.G.4c)q.1I.jg(2d)},jd:C(2d){E 2p=2d.12;2B(E i=0;i<2p;i++){if($.3t(2d[i],q.G.4z)==-1){q.G.4z.2N(2d[i])}}},jg:C(2d){E 2p=2d.12;2B(E i=0;i<2p;i++){E 3s=$.3t(2d[i],q.G.4c);if(3s!=-1){q.G.4c.bi(3s,1)}}},2R:C(B,44){q.1I.2D={4c:q.G.4c,4z:q.G.4z,6G:q.G.6G,5B:q.G.5B,5A:q.G.5A,5y:q.G.5y,1K:q.G.1K,4T:q.G.4T,6L:q.G.6L,4f:q.G.4f};$.7E(q.1I.2D,44);B=q.1I.6G(B);q.1I.$1i=$(\'<1i />\').1F(B);q.1I.5B();q.1I.5A();q.1I.ji();q.1I.1K();q.1I.4f();q.1I.j5();q.1I.5y();q.1I.6L();B=q.1I.$1i.B();q.1I.$1i.1u();F B},6G:C(B){if(!q.1I.2D.6G)F B;F B.K(/<!--[\\s\\S]*?-->/gi,\'\')},5B:C(B){if(!q.1I.2D.5B)F B;E 2p=q.1I.2D.5B.12;E 5F=[],dB=[];2B(E i=0;i<2p;i++){dB.2N(q.1I.2D.5B[i][1]);5F.2N(q.1I.2D.5B[i][0])}$.1B(5F,$.1d(C(1k,1E){q.1I.$1i.1h(1E).2t(C(){F $("<"+dB[1k]+" />",{B:$(q).B()})})},q))},5A:C(){if(!q.1I.2D.5A)F;E 2p=q.1I.2D.5A.12;q.1I.$1i.1h(\'1j\').1B($.1d(C(n,s){E $el=$(s);E 1o=$el.1c(\'1o\');2B(E i=0;i<2p;i++){if(1o&&1o.1T(2a 2l(\'^\'+q.1I.2D.5A[i][0],\'i\'))){E 1p=q.1I.2D.5A[i][1];$el.2t(C(){E Y=1l.3w(1p);F $(Y).1F($(q).26())})}}},q))},ji:C(){if(!q.1I.2D.4c&&q.1I.2D.4z){q.1I.$1i.1h(\'*\').6h(q.1I.2D.4z.3c(\',\')).1B(C(i,s){if(s.3x===\'\')$(s).1u();N $(s).26().3Y()})}if(q.1I.2D.4c){q.1I.$1i.1h(q.1I.2D.4c.3c(\',\')).1B(C(i,s){if($(s).3i(\'I-3V-Y\')||$(s).3i(\'I-J-2r\'))F;if(s.3x===\'\')$(s).1u();N $(s).26().3Y()})}},1K:C(){E 2p;if(!q.1I.2D.1K&&q.1I.2D.4T){E ce=[],cd=[];2p=q.1I.2D.4T.12;2B(E i=0;i<2p;i++){ce.2N(q.1I.2D.4T[i][0]);cd.2N(q.1I.2D.4T[i][1])}q.1I.$1i.1h(\'*\').1B($.1d(C(n,s){E $el=$(s);E 3s=$.3t($el[0].1p.3e(),ce);E 5D=q.1I.jn(3s,cd,$el);if(5D){$.1B(5D,C(z,f){$el.1K(f)})}},q))}if(q.1I.2D.1K){2p=q.1I.2D.1K.12;2B(E i=0;i<2p;i++){E 8j=q.1I.2D.1K[i][1];if($.bc(8j))8j=8j.3c(\' \');q.1I.$1i.1h(q.1I.2D.1K[i][0]).1K(8j)}}},jn:C(3s,5J,$el){E 5D=[];if(3s==-1){$.1B($el[0].4u,C(i,2x){5D.2N(2x.1w)})}N if(5J[3s]==\'*\'){5D=[]}N{$.1B($el[0].4u,C(i,2x){if($.bc(5J[3s])){if($.3t(2x.1w,5J[3s])==-1){5D.2N(2x.1w)}}N if(5J[3s]!=2x.1w){5D.2N(2x.1w)}})}F 5D},j3:C(el,bv){bv=2a 2l(bv,"g");F el.1B(C(){E 3u=$(q);E 2p=q.4u.12-1;2B(E i=2p;i>=0;i--){E 2x=q.4u[i];if(2x&&2x.oj&&2x.1w.3N(bv)>=0){3u.1K(2x.1w)}}})},4f:C(){if(!q.1I.2D.4f)F;q.1I.$1i.1h(q.1I.2D.4f.3c(\',\')).1B(C(){E $el=$(q);E 1g=$el.1g();1g=1g.K(/\\6g/g,\'\');1g=1g.K(/&5s;/gi,\'\');1g=1g.K(/\\s/g,\'\');if(1g===\'\'&&$el.3O().12===0){$el.1u()}})},j5:C(){q.1I.$1i.1h(\'li p\').26().3Y()},5y:C(){if(!q.1I.2D.5y)F;E 2d=q.1I.2D.5y;if($.bc(q.1I.2D.5y))2d=q.1I.2D.5y.3c(\',\');q.1I.j3(q.1I.$1i.1h(2d),\'^(1f-)\')},6L:C(){if(!q.1I.2D.6L)F;q.1I.$1i.1h(q.1I.2D.6L.3c(\',\')).1B(C(){if(q.4u.12===0){$(q).26().3Y()}})}}},1A:C(){F{3Q:C(){F{B:{1J:q.1H.1b(\'B\'),1C:\'1e.3m\'},3a:{1J:q.1H.1b(\'3a\'),1n:{p:{1J:q.1H.1b(\'j2\'),1C:\'R.30\'},29:{1J:q.1H.1b(\'ci\'),1C:\'R.30\'},2F:{1J:q.1H.1b(\'1e\'),1C:\'R.30\'},h1:{1J:q.1H.1b(\'jb\'),1C:\'R.30\'},h2:{1J:q.1H.1b(\'jH\'),1C:\'R.30\'},h3:{1J:q.1H.1b(\'jI\'),1C:\'R.30\'},h4:{1J:q.1H.1b(\'jM\'),1C:\'R.30\'},h5:{1J:q.1H.1b(\'jD\'),1C:\'R.30\'}}},4n:{1J:q.1H.1b(\'4n\'),1C:\'28.30\'},4m:{1J:q.1H.1b(\'4m\'),1C:\'28.30\'},5Y:{1J:q.1H.1b(\'5Y\'),1C:\'28.30\'},5x:{1J:q.1H.1b(\'5x\'),1C:\'28.30\'},5m:{1J:\'&o6; \'+q.1H.1b(\'5m\'),1C:\'2e.3m\'},5z:{1J:\'1. \'+q.1H.1b(\'5z\'),1C:\'2e.3m\'},7p:{1J:\'< \'+q.1H.1b(\'7p\'),1C:\'3y.95\'},3y:{1J:\'> \'+q.1H.1b(\'3y\'),1C:\'3y.bo\'},M:{1J:q.1H.1b(\'M\'),1C:\'M.2O\'},22:{1J:q.1H.1b(\'22\'),1C:\'22.2O\'},V:{1J:q.1H.1b(\'V\'),1n:{V:{1J:q.1H.1b(\'ba\'),1C:\'V.2O\',1R:{2j:\'a\',in:{1J:q.1H.1b(\'ca\'),},2m:{1J:q.1H.1b(\'ba\')}}},6P:{1J:q.1H.1b(\'6P\'),1C:\'V.6P\',1R:{2j:\'a\',2m:{1c:{\'1G\':\'I-1n-V-c9\',\'4K-7o\':1q}}}}}},3b:{1J:q.1H.1b(\'3b\'),1n:{2c:{1J:q.1H.1b(\'jt\'),1C:\'3b.2c\'},5u:{1J:q.1H.1b(\'jx\'),1C:\'3b.5u\'},4s:{1J:q.1H.1b(\'jB\'),1C:\'3b.4s\'},9d:{1J:q.1H.1b(\'jA\'),1C:\'3b.9d\'}}},b3:{1J:q.1H.1b(\'b3\'),1C:\'3K.1Y\'}}},2o:C(){q.1A.iV();q.1A.iN();q.1A.iU();if(q.G.4i.12===0)F;q.$1A=q.1A.ir();q.1A.iQ();q.1A.1F();q.1A.i5();q.1A.ia();q.1A.iz();if(q.G.b5){q.$T.on(\'iZ.I 2s.I 2n.I\',$.1d(q.1R.1A,q))}},ir:C(){F $(\'<3p>\').2f(\'I-1A\').1c({\'id\':\'I-1A-\'+q.2G,\'9c\':\'1A\'})},i5:C(){$.1B(q.G.1A.3a.1n,$.1d(C(i,s){if($.3t(i,q.G.3a)==-1)83 q.G.1A.3a.1n[i]},q))},ia:C(){$.1B(q.G.4i,$.1d(C(i,2g){if(!q.G.1A[2g])F;if(2g===\'22\'){if(q.G.76===O)F;N if(!q.G.76&&q.G.7V===O)F}if(2g===\'M\'){if(q.G.75===O)F;N if(!q.G.75&&q.G.7V===O)F}E 2X=q.G.1A[2g];q.$1A.1F($(\'<li>\').1F(q.1t.2o(2g,2X)))},q))},1F:C(){if(q.G.bf){q.$1A.2f(\'I-1A-oT\');$(q.G.bf).B(q.$1A)}N{q.$2Q.6t(q.$1A)}},iz:C(){if(!q.L.7b())F;if(q.G.bf)F;if(!q.G.iS)F;q.1A.cp();$(q.G.6y).on(\'6b.I.\'+q.2G,$.1d(q.1A.cp,q))},iQ:C(){if(q.L.6M()&&q.G.iO){q.$1A.2f(\'I-1A-bI\')}},iU:C(){if(q.G.4E)F;E 68=q.G.4i.4Q(\'B\');if(68!==-1){q.G.4i.bi(68,1)}},iV:C(){if(q.G.cw.12===0)F;$.1B(q.G.cw,$.1d(C(i,s){E 68=q.G.4i.4Q(s);q.G.4i.bi(68,1)},q))},iN:C(){if(!q.L.6M()||q.G.cv.12===0)F;$.1B(q.G.cv,$.1d(C(i,s){E 68=q.G.4i.4Q(s);q.G.4i.bi(68,1)},q))},cp:C(){E 3U=$(q.G.6y).3U();E 6C=1;if(q.G.6y===1l){6C=q.$2Q.2I().2U}if((3U+q.G.6z)>6C){q.1A.iD(3U,6C)}N{q.1A.iC()}},iD:C(3U,6C){E 2U=q.G.6z+3U-6C;E 2c=0;E 2h=6C+q.$2Q.3n()-32;E 2J=q.$2Q.7P();q.$1A.2f(\'1A-82-2Q\');q.$1A.1O({4g:\'8u\',2J:2J,2U:2U+\'px\',2c:2c});if(3U>2h)$(\'.I-1n-\'+q.2G+\':c2\').3v();q.1A.iJ();q.$1A.1O(\'iH\',(3U<2h)?\'c2\':\'k4\')},iC:C(){q.$1A.1O({4g:\'oC\',2J:\'bj\',2U:0,2c:0,iH:\'c2\'});q.1A.jO();q.$1A.2S(\'1A-82-2Q\')},iJ:C(){E 2U=q.$1A.6c()+q.G.6z;E 4g=\'82\';if(q.G.6y!==1l){2U=(q.$1A.6c()+q.$1A.2I().2U)+q.G.6z;4g=\'8u\'}$(\'.I-1n-\'+q.2G).1B(C(){$(q).1O({4g:4g,2U:2U+\'px\'})})},jO:C(){E 2U=(q.$1A.6c()+q.$1A.2I().2U);$(\'.I-1n-\'+q.2G).1B(C(){$(q).1O({4g:\'8u\',2U:2U+\'px\'})})}}},1v:C(){F{3Q:C(id,2i,2A){q.1v.4Y=O;q.1v.2A=2A;q.1v.2i=2i;q.1v.$el=$(id);q.1v.$4d=$(\'<1i id="I-4d" />\');q.1v.$cE=$(\'<1i id="I-4d-3f" />\').1g(q.1H.1b(\'kD\'));q.1v.$3D=$(\'<3D 1m="22" 1w="22" />\');q.1v.$cE.1F(q.1v.$3D);q.1v.$4d.1F(q.1v.$cE);q.1v.$el.1F(q.1v.$4d);q.1v.$4d.3h(\'I.1v\');q.1v.$3D.3h(\'I.1v\');q.1v.$4d.on(\'oL.I.1v\',$.1d(q.1v.bn,q));q.1v.$4d.on(\'oK.I.1v\',$.1d(q.1v.k6,q));q.1v.$3D.on(\'kR.I.1v\',$.1d(C(e){e=e.7T||e;q.1v.b9(q.1v.$3D[0].5R[0],e)},q));q.1v.$4d.on(\'57.I.1v\',$.1d(C(e){e.2w();q.1v.$4d.2S(\'7k-c0\').2f(\'7k-57\');q.1v.bs(e)},q))},kQ:C(22,e){q.1v.4Y=1q;q.1v.b9(22,e)},bs:C(e){e=e.7T||e;E 5R=e.bG.5R;q.1v.b9(5R[0],e)},b9:C(22,e){if(q.G.7V){q.1v.bL(22);q.1v.kr(22);F}E 4q=!!3l.b6?2a b6():4e;if(3l.b6){q.1v.bL(22);E 1w=(q.1v.1m==\'M\')?q.G.k1:q.G.k2;4q.1F(1w,22)}q.5E.2O();q.1X.2u(\'o1\',e,4q);q.1v.ky(4q,e)},bL:C(22){q.1v.k8(22);if(q.1v.4Y){q.1v.2i=(q.1v.1m==\'M\')?q.G.75:q.G.76;q.1v.2A=(q.1v.1m==\'M\')?q.M.1Y:q.22.1Y}},k8:C(22){q.1v.1m=\'M\';if(q.G.kb.4Q(22.1m)==-1){q.1v.1m=\'22\'}},6V:C(7H,fd){if(7H===O||1s 7H!==\'41\')F fd;$.1B(7H,$.1d(C(k,v){if(v!==4e&&v.4y().4Q(\'#\')===0)v=$(v).2K();fd.1F(k,v)},q));F fd},ky:C(4q,e){if(q.1v.1m==\'M\'){4q=q.1v.6V(q.G.nq,4q);4q=q.1v.6V(q.1v.b7,4q)}N{4q=q.1v.6V(q.G.nr,4q);4q=q.1v.6V(q.1v.bC,4q)}E 2M=2a bq();2M.bw(\'ns\',q.1v.2i);2M.cF("X-n7-n8","bq");2M.fu=$.1d(C(){if(2M.bS==4){E 1f=2M.fr;1f=1f.K(/^\\[/,\'\');1f=1f.K(/\\]$/,\'\');E 2P;52{2P=(1s 1f===\'6Z\'?$.jY(1f):1f)}51(n6){2P={6U:1q}}q.5E.3v();if(!q.1v.4Y){q.1v.$4d.2S(\'7k-57\')}q.1v.2A(2P,q.1v.4Y,e)}},q);2M.dk(4q)},bn:C(e){e.2w();q.1v.$4d.2f(\'7k-c0\')},k6:C(e){e.2w();q.1v.$4d.2S(\'7k-c0\')},nf:C(){q.1v.b7={}},ne:C(1w,1E){q.1v.b7[1w]=1E},nd:C(1w){83 q.1v.b7[1w]},nc:C(){q.1v.bC={}},nw:C(1w,1E){q.1v.bC[1w]=1E},nx:C(1w){83 q.1v.bC[1w]},kr:C(22){q.1v.fz(22,$.1d(C(kw){q.1v.g4(22,kw)},q))},fz:C(22,2A){E 2M=2a bq();E 6A=\'?\';if(q.G.7V.3N(/\\?/)!=\'-1\')6A=\'&\';2M.bw(\'nR\',q.G.7V+6A+\'1w=\'+22.1w+\'&1m=\'+22.1m,1q);if(2M.fy)2M.fy(\'1g/nS; nP=x-nN-nO\');E fi=q;2M.fu=C(e){if(q.bS==4&&q.dv==bt){fi.5E.2O();2A(fl(q.fr))}N if(q.bS==4&&q.dv!=bt){}};2M.dk()},g3:C(bx,2i){E 2M=2a bq();if("nY"in 2M){2M.bw(bx,2i,1q)}N if(1s fX!="1y"){2M=2a fX();2M.bw(bx,2i)}N{2M=4e}F 2M},g4:C(22,2i){E 2M=q.1v.g3(\'nL\',2i);if(!2M){}N{2M.nD=$.1d(C(){if(2M.dv==bt){q.5E.3v();E bA=2i.4o(\'?\');if(!bA[0]){F O}if(!q.1v.4Y){q.1v.$4d.2S(\'7k-57\')}E 2P={9b:bA[0]};if(q.1v.1m==\'22\'){E 2C=bA[0].4o(\'/\');2P.6k=2C[2C.12-1]}q.1v.2A(2P,q.1v.4Y,O)}N{}},q);2M.nK=C(){};2M.1v.nJ=C(e){};2M.cF(\'p0-p1\',22.1m);2M.cF(\'x-qg-qm\',\'qq-qp\');2M.dk(22)}}}},L:C(){F{6M:C(){F/(eQ|eH|eO|ht)/.bE(b8.bb)},7b:C(){F!/(eQ|eH|q3|eO|ht)/.bE(b8.bb)},q0:C(7H){F g8.5w.4y.6e(7H)==\'[41 6f]\'},3z:C(B,he){B=B.K(/[\\6g-\\q7\\qb]/g,\'\');B=B.K(/&5s;/gi,\'\');B=B.K(/<\\/?br\\s?\\/?>/g,\'\');B=B.K(/\\s/g,\'\');B=B.K(/^<p>[^\\W\\w\\D\\d]*?<\\/p>$/i,\'\');B=B.K(/<4R(.*?[^>])>$/i,\'4R\');B=B.K(/<4E(.*?[^>])>$/i,\'4E\');if(he!==O){B=B.K(/<[^\\/>][^>]*><\\/[^>]+>/gi,\'\');B=B.K(/<[^\\/>][^>]*><\\/[^>]+>/gi,\'\')}B=$.3k(B);F B===\'\'},dr:C(5f){if(1s(5f)===\'1y\')F 0;F 5L(5f.K(\'px\',\'\'),10)},n2:C(6H){if(1s 6H==\'1y\')F;if(6H.3N(/^#/)==-1)F 6H;E hm=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;6H=6H.K(hm,C(m,r,g,b){F r+r+g+g+b+b});E bg=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.5j(6H);F\'qQ(\'+5L(bg[1],16)+\', \'+5L(bg[2],16)+\', \'+5L(bg[3],16)+\')\'},6q:C(el){F $(\'<1i>\').1F($(el).eq(0).8O()).B()},bh:C(el){if($.3t(el.1p,q.G.8F)!==-1){F $(el)}N{F $(el).2q(q.G.8F.4y().3e(),q.$T[0])}},5r:C(el,1c){E $el=$(el);if(1s $el.1c(1c)==\'1y\'){F 1q}if($el.1c(1c)===\'\'){$el.1K(1c);F 1q}F O},4f:C(i,s){E $s=$($.dQ(s));$s.1h(\'.I-7s-3g\').1K(\'1o\').1K(\'1G\');if($s.1h(\'hr, br, 1L, 4R, 4E\').12!==0)F;E 1g=$.3k($s.1g());if(q.L.3z(1g,O)){$s.1u()}},8z:C(){q.gs=q.$T.3U();q.bm=$(3l).3U();if(q.G.9p)q.gq=$(q.G.9p).3U()},bk:C(){if(1s q.8z===\'1y\'&&1s q.bm===\'1y\')F;$(3l).3U(q.bm);q.$T.3U(q.gs);if(q.G.9p)$(q.G.9p).3U(q.gq)},bH:C(){E 3g=1l.3w(\'1j\');3g.3E=\'I-7s-3g\';3g.3x=q.G.6o;F 3g},4Z:C(Q){E 2d=q.G.4N;2d.2N(\'1j\');if(Q.1p==\'8o\')2d.2N(\'a\');$(Q).1h(2d.3c(\',\')).6h(\'1j.I-J-2r\').26().3Y()},6i:C(Q,4Z){E 3u=q;$(Q).2t(C(){if(4Z===1q)3u.L.4Z(q);F $(q).26()});F $(Q)},4I:C(Q,Y,4Z){E 5F;E 3u=q;$(Q).2t(C(){5F=$(\'<\'+Y+\' />\').1F($(q).26());2B(E i=0;i<q.4u.12;i++){5F.1c(q.4u[i].1w,q.4u[i].1E)}if(4Z===1q)3u.L.4Z(5F);F 5F});F 5F},gp:C(){E R=q.J.4a();if(!R)F O;E 2I=q.1V.b4(R);F(2I===0)?1q:O},6T:C(2j){if(1s 2j==\'1y\'){E 2j=q.J.4a();if(!2j)F O}E 2I=q.1V.b4(2j);E 1g=$.3k($(2j).1g()).K(/\\n\\r\\n/g,\'\');F(2I==1g.12)?1q:O},dN:C(){E R=q.$T[0];E 2I=q.1V.b4(R);E 1g=$.3k($(R).B().K(/(<([^>]+)>)/gi,\'\'));F(2I==1g.12)?1q:O},6X:C(R){R=R[0]||R;F R&&q.L.7J(R.1p)},7J:C(Y){if(1s Y==\'1y\')F O;F q.gm.bE(Y)},bB:C(1z,Y){E 2j=$(1z).2q(Y,q.$T[0]);if(2j.12==1){F 2j[0]}F O},9w:C(){F q.bd},gW:C(){q.bd=1q},8U:C(){q.bd=O},4p:C(el){if(!el){F O}if($(el).dL(\'.I-T\').12===0||$(el).3i(\'I-T\')){F O}F el},h8:C(){F q.L.4S([\'dK\',\'di\',\'cS\',\'cR\',\'cI\',\'cH\'])},4S:C(1p){E 1r=q.J.67();E 1z=q.J.3B();if($.bc(1p)){E cJ=0;$.1B(1p,$.1d(C(i,s){if(q.L.cM(1z,1r,s)){cJ++}},q));F(cJ===0)?O:1q}N{F q.L.cM(1z,1r,1p)}},cM:C(1z,1r,1p){1p=1p.lF();F 1r&&1r.1p===1p?1r:1z&&1z.1p===1p?1z:O},lG:C(){F(q.L.1P(\'2E\')&&5L(q.L.1P(\'bp\'),10)<9)?1q:O},lJ:C(){F(q.L.1P(\'2E\')&&5L(q.L.1P(\'bp\'),10)<10)?1q:O},gj:C(){F!!b8.bb.1T(/lB\\/7\\./)},1P:C(1P){E 4U=b8.bb.3e();E 1T=/(de)[\\/]([\\w.]+)/.5j(4U)||/(hw)[ \\/]([\\w.]+)/.5j(4U)||/(7q)[ \\/]([\\w.]+).*(db)[ \\/]([\\w.]+)/.5j(4U)||/(7q)[ \\/]([\\w.]+)/.5j(4U)||/(kX)(?:.*bp|)[ \\/]([\\w.]+)/.5j(4U)||/(2E) ([\\w.]+)/.5j(4U)||4U.4Q("l3")>=0&&/(dc)(?::| )([\\w.]+)/.5j(4U)||4U.4Q("kZ")<0&&/(4b)(?:.*? dc:([\\w.]+)|)/.5j(4U)||[];if(1P==\'db\')F(1s 1T[3]!=\'1y\')?1T[3]==\'db\':O;if(1P==\'bp\')F 1T[2];if(1P==\'7q\')F(1T[1]==\'hw\'||1T[1]==\'de\'||1T[1]==\'7q\');if(1T[1]==\'dc\')F 1P==\'2E\';if(1T[1]==\'de\')F 1P==\'7q\';F 1P==1T[1]},bF:C(ev,es,2I){E i=ev.4Q(es,2I);F i>=0?i:O},d8:C(){E $31=$(\'B\');E 7u=3l.7P;if(!7u){E cZ=1l.lk.lp();7u=cZ.4s-8d.mO(cZ.2c)}E kP=1l.31.kC<7u;E by=q.L.kv();$31.1O(\'bI\',\'k4\');if(kP)$31.1O(\'hh-4s\',by)},kv:C(){E $31=$(\'31\');E 7G=1l.3w(\'1i\');7G.3E=\'I-hf-j0\';$31.1F(7G);E by=7G.m8-7G.kC;$31[0].m6(7G);F by},bJ:C(){$(\'B\').1O({\'bI\':\'\',\'hh-4s\':\'\'});$(\'31\').1u(\'I-hf-j0\')}}}};$(3l).on(\'2R.eN.I\',C(){$(\'[1f-eN="I"]\').I()});47.5w.3Q.5w=47.5w})(o7);',62,1669,'||||||||||||||||||||||||||this|||||||||||html|function||var|return|opts||redactor|selection|replace|utils|image|else|false||node|block||editor||link|||tag||||length||range||||||modal|get|attr|proxy|code|data|text|find|div|span|key|document|type|dropdown|style|tagName|true|parent|typeof|button|remove|upload|name|clean|undefined|current|toolbar|each|func|keydown|value|append|class|lang|tidy|title|removeAttr|img|linebreaks|next|css|browser|target|observe|sync|match|set|caret|formatted|core|insert|blocks||btn|file|nodes||buffer|contents||inline|blockquote|new|start|left|tags|list|addClass|btnName|end|url|element|href|RegExp|out|focus|build|len|closest|marker|keyup|replaceWith|setCallback|textarea|preventDefault|item|click|linkify|callback|for|arr|settings|msie|pre|uuid|tabifier|offset|width|val|label|xhr|push|show|json|box|load|removeClass|sel|top|paragraphize|setStart|btnObject|td|last|format|body|||||||||formatting|alignment|join|restore|toLowerCase|placeholder|space|off|hasClass|keyCode|trim|window|toggle|height|save|ul|tooltip|autosave|pos|inArray|self|hide|createElement|innerHTML|indent|isEmpty|setTimeout|getCurrent|CodeMirror|input|className|after|imageBox|verified|first|re|line|insertNode|matches|search|children|setEnd|init|font|point|rel|scrollTop|script|table|getBlocks|unwrap|execCommand||object|option|collapse|options|||Redactor|ctrl|section|getBlock|mozilla|deniedTags|droparea|null|removeEmpty|position|del|buttons|close|resizeHandle|addRange|italic|bold|split|isRedactorParent|formData|clearUnverified|right|src|attributes|regexps|child|substr|toString|allowedTags|command|margin|blockElem|getSelection|source|modalBox|prev|cmd|replaceToTag|resize|aria|frag|wrapper|inlineTags|htmls|orgn|indexOf|iframe|isCurrentOrParent|allowedAttr|ua|elem|arrow|keys|direct|removeInlineTags||catch|try|collapsed|setAfter|deleteContents|while|drop|BR||getMarkerAsHtml|cont|linkProtocol|contenteditable|pasteBox|str|align|meta|strong|exec|isFunction|editter|unorderedlist|links|https|none|tmp|removeEmptyAttr|nbsp|br1|center|LI|prototype|underline|removeDataAttr|orderedlist|replaceStyles|replaceTags|paste|attributesRemove|progress|replacement|toggleType|touchstart|tab|allowed|lastNode|parseInt|node1|quot|nodeValue|th|replaceDivs|files|emptyHtml|lastList|inlines|currentList|currentLevel|methods|deleted|wrap|||templateName|marginTop|form|||getParent|index|containerTag|charAt|scroll|innerHeight|num|call|String|u200B|not|replaceWithContents|prop|filename|getRangeAt|shortcuts|break|invisibleSpace|params|getOuterHtml|visual|shiftKey|prepend|instance|preSpaces|SPAN|insertBreakLine|toolbarFixedTarget|toolbarFixedTopOffset|mark|Insert|boxTop|module|shift|TD|removeComments|hex|getNodes|metaKey|figure|removeWithoutAttr|isMobile|display|tr|unlink|getMarker|mousedown|tabindex|isEndOfElement|error|getHiddenFields|editorDiv|isBlock|video|string|ENTER|vimeo|youtube||modalOverlay|imageUpload|fileUpload|focn|startNode|dropdowns|decoration|isDesktop|strike|posFromIndex|endRange|float|getEvent|level|embed|possible|drag|sub|parHtml|www|disabled|outdent|webkit|getTabs|invisible|z0|windowWidth|outerHTML|blocksSize|keyPosition|dropact|select|rangeCount|rtePaste|hideAll|pattern|extend|boundaryRange|scrollDiv|obj|weight|isBlockTag|_blank|edit|action|handler|toggleClass|innerWidth|sup|setVerified|cloneRange|originalEvent|which|s3|hideResize|listParent|figcaption|blank|alt|appendChild|fixed|delete|BACKSPACE|tmpList|modif|header|100|DIV|imageResizer|tagblock|tmpLi|Math|event|resizer|setClass|blurClickedElement|setMode|attrs|items|returnValue|inserted|codemirror|PRE|removeMarkers|blockLevelElements|plugins|http|linkmarker|absolute|focusNode|Delete|imageFloatMargin|onPaste|saveScroll|act|classSize|replaceParagraphsToBr|UL|tagout|alignmentTags|targetTouches|newLevel|isRemoveInline|param|ftp|cleanlevel|clear|OL|clone|imageMargin|DELETE|icon|cite|removeAllRanges|disableSelectAll|lastLevel|createTextNode|modalClose|audio|active|||createRange|convertVideoLinks|tabber|decrease|||||closeHandler|filelink|role|justify|modalHeader|small|selectElement|character|modalFooter|selectNodeContents|rebuffer|undo|autosaveInterval|inputUrl|amp|scrollTarget|setActive|Add|addProperties|events|ctrlKey|isMobileUndoRedo|isSelectAll|insertDblBreakLine|exceptTags|counter||size|node2|singleLine|apply|Array|case|Header|setStartAfter|endNode|addEvent|methodVal|createDocumentFragment|firstChild|autosaveFields|isContainerTable|enable|onSync|formatblock|x200b|replaceToParagraph|eventName|parentA|blockHtml|tabAsSpaces|u00a0|checked|re2|convertLinks|editorHtml|selectionMarkers|com|before|SPACE|nodeType|redo|isTextarea|marginRight|onClick|indentValue|marginLeft|marginBottom|imageFloat|pageY|property|getPlainText|moveToPoint|enterKey|prev2|createTextRange|caretRangeFromPoint|normalizeLists|caretPositionFromPoint|getOffset|encodeEntities|cloned|images|classname|parentEl|deleteProperties|mouseover|mouseout|IMG|substring|safes|isEnabled|formatWrap|formatListToBlockquote|minHeight|bind|maxHeight|caretRange|BLOCKQUOTE|link_new_tab|callbacks|samp|fixEmptyIndent|wrapperHtml|matchContainers|insertInIe|kbd|windowHeight|appendTo|prevList|spaces|modalBody|mso|showOnDesktop|onPasteTidy|clearStyle|ESC|horizontalrule|getOffsetOfElement|activeButtons|FormData|imageFields|navigator|traverseFile|link_insert|userAgent|isArray|selectAll||toolbarExternal|result|getAlignmentElement|splice|auto|restoreScroll|codeLength|saveBodyScroll|onDrag|increase|version|XMLHttpRequest||onDrop|200|special|regex|open|method|scrollbarWidth|specialKey|s3file|isTag|fileFields|placeTag|test|strpos|dataTransfer|createSpaceElement|overflow|enableBodyScroll|iframeEnd|setConfig|iframeStart|firstFound|endOffset|br2|endContainer|insertBreakLineProcessing|readyState|setBefore|curLang|extra|filter|convertImageLinks|mailto|inputText|hover|convertUrlLinks|visible|inValues|setDropdownProperties|setDropdownAttr|outValues|isCurrent|footer|inactive|link_edit|isDelete|addDropdown|allowedAttrData|allowedAttrTags|closeTooltip|activeButtonsStates||quote|setInactiveAll|currentEl|buttonsSize|createButton|isOrderedCmdUnordered|Column|observeScroll|isUnorderedCmdOrdered|listTag|linkSize|slice|regexB|buttonsHideOnMobile|buttonsHide|showOnMobile|createCancelButton|createActionButton|highContrast|addCallback|image_position|URL|placeholdler|setRequestHeader|getTextFromHtml|H6|H5|matched|tagsEmpty|dfn|isCurrentOrParentOne|attrAllowed|Link|headers|add|H4|H3|saveFormTags|convertInline|clearUnverifiedRemove|verifiedTags|listType|listsIds|documentElementRect|formatTableWrapping|content|headTag|count|modules|autosaveName|autosaveOnChange|direction|disableBodyScroll|setAfterOrBefore|fonts|safari|rv||opr|RedactorPlugins|getModuleMethods|syncCode|H2|setFormat|send||removeFormat|TH|isP|imageResizable|imageEditable|normalize|htmlIe||address|status|imageDelete|TAB|isEndOfTable|Table|nodeToCaretPositionFromPoint|rTags|ratio|imageDisplay|selectionStart|selectionEnd|enlargeOffset|removeSpaces|markerLength|showCode|H1|parents|htmlLength|isEndOfEditor|isFocused|redactorImageLink|parseHTML|one|dropdownWidth|formattingAdd|dropdownObject|Row|DOWN|commentsMatches|container|ownLine|head|getText|contOwnLine|tfoot|parentNode|219|BODY|thead|getInlines|hotkeysShiftNums|suffix|finalNodes|cleanTag|setMarker|tbody|startOffset|finish|setOffset|getNodesMarker|paragraphizeBlocks|221||||duplicate|onClickCallback||offsetNode|needle|createTooltip|setEvent|haystack|ie11PasteFrag|disableIeLinks|ie11FixInserting|EndToEnd|setEndPoint|RIGHT|keydownStop|disableMozillaEditing|aside|formatConvert|formatRemoveSameChildren|iPod|args|switch|_this|orgo|strikethrough|tools|BlackBerry|through|iPhone|lastChild|article|savedSel|blocksMatch|execHtml|scope|htmlFixMozilla|haspopup|the|beforekey|||||||||||afterkey|htmlWithoutClean||fullscreen|indented|setEventDropUpload|cleanStyleOnEnter|that|insertParagraph|exitFromBlockquote|decodeURIComponent|replaceDivToParagraph||codeKeydownCallback|tabKey|origHandler|responseText|replaceDivToBreakLine|setEventDrop|onreadystatechange|dbl|stopPropagation|area|overrideMimeType|s3executeOnSignedUrl|arguments|dragImageUpload|insertAfterLastElement|setEvents|insertNewLine|dragFileUpload|onTab|onArrowDown|blur|checkKeyEvents|CTRL|META|ALT|checkEvents|isBlured|focusEnd|stop|setHelpers|formatMultiple|HR|SHIFT|addArrowsEvent|focusCallback|XDomainRequest|setupSelectAll|codeKeyupCallback|LEFT_WIN|altKey|createMarkers|s3createCORSRequest|s3uploadToS3|hotkeysSpecialKeys|setupBuffer|Function|Object|internal|textareaIndenting|onPasteExtra|choose|Mso|setInactive|setActiveInVisual|tempEnd|tempStart||isIe11|modified|indenting|reIsBlock|Center|replaceSelection|isStartOfElement|saveTargetScroll|bmso|saveEditorScroll||clearInterval|removeData|pasteHTML|Video|eventNamespace|Align|destroy|all|indexFromPos|matchBlocks|newTag|replaceDivsToBr|restoreFormTags|onSet|matchBR|savePreFormatting|getPreCode|getOnlyImages|restoreSelectionMarker|saveCodeFormatting|removeDirtyStyles|isSingleLine|onPasteIeFixLinks|setSelectionRange|Code|setInactiveInCode|showVisual|anchor|enableSelectAll|setValue|startSync|onPasteRemoveSpans|onPasteRemoveEmpty|||||||onChange|isCurrentOrParentHeader|selected|onPasteWord|editerWidth|showEdit|loadResizableControls|removeEmptyTags|scrollbar|opacity|padding|15px|cleanSpaces|loadEditableControls|Head|shorthandRegex|walker|increaseLists|removeInvisibleSpace|subscript||foco|Android|replaced|superscript|chrome|increaseText|increaseBlocks|decreaseLists|decreaseBlocks|to|fixImageSourceAfterDrop|inside|imageLink|buttonSave|nofollow|imagePosition|floatValue|buttonDelete|_delete|pastePlainText|FIGCAPTION|Apple|Image|700|floating|linkNofollow|Right|moveResize|Left|round|stopResize|startResize|pageX|chars|update|setFloating|setResizable|formatCollapsed|onShiftEnter|setFormattingTags|replaceElement|setTitle|setContent|getTemplate|loadButtons|alignElement|template|||||jsxhr|spans|removeEmptyListInTable|setDraggable|isNeedReplaceElement|setText||createDeleteButton|setButtonsWidth|bindModuleMethods|createContainer||cancel|setEnter|draggable|handle|isLinebreaksOrNoBlocks|setBlocks|setFixed|map|setMultiple|observeScrollDisable|observeScrollEnable|setCollapsed|formatTags|getPrev|visibility|anchorNode|setDropdownsFixed|newTd|commonAncestorContainer|fadeOut|hideButtonsOnMobile|toolbarOverflow|checkbox|setOverflow|success|toolbarFixed|fieldset|isButtonSourceNeeded|hideButtons|loadTemplates|imageEdit|callbackName|mouseup|measure|setEditable|paragraph|removeAttrs|linkTooltip|removeParagraphsInLists|getSafesComments|restoreSafes|lineAfter|Color|setupAllowed|header1|showTooltip|addToAllowed|aUnlink|aEdit|removeFromDenied|Edit|removeTags|aLink|getSafes|getTooltipPosition|here|removeAttrGetRemoves|Drop|replaceBreaksToParagraphs|properties|enableEvents|shortcutsAdd|align_left|createPasteBox|freeze|buildOverlay|align_center|loadModules|loadOptions|align_justify|align_right|disableEvents|header5|lineBefore|replaceBreaksToNewLines|png|header2|header3|cleanOnPaste|List|destroyed|header4|gif|unsetDropdownsFixed|contrast|textNode|elements|600|xn|location|thref|createContainerBox|insertAfter|parseJSON|isExceptLastOrFirst|setNodesMarker|imageUploadParam|fileUploadParam|_moz_dirty|hidden|setCodeAndCall|onDragLeave|createTextarea|getType|setFocus|objects|imageTypes|insertInOthersBrowsers|getUndo|fromElement|startPointNode|cleanUrl|empty|run|getRedo|fromTextarea|lastFound|re3|langs|startContainer|removeNodesMarkers|getInlinesTags|s3uploadFile|setEndBefore|setForce|getTextareaName|measureScrollbar|signedURL|regexp|sendData|loadContent|keyupStop|isKey|clientWidth|upload_label|buttonText|enableEditor|getData|callEditor|lastBlock|getLastBlock|loadEditor|buttonInsert|setRedo|formatEmpty|setOptions|isOverflowing|directUpload|change|formatBlockquote|convertImages|dir|setUndo|pop|opera|drop_file_here|compatible|UP|ltr|VERSION|trident|cut|docs|sid|hgroup|down|guid|rowspan|home|Name|Download|105|math|removePhp|uploadImageField||legend|documentElement|textContent|innerText|104|download|getBoundingClientRect|stripTags|savePreCode|up||Alignment|Open|colspan|youtu|Anchor|fake|Or|Trident|Underline|LEFT|10px|toUpperCase|isOldIe|Choose|or_choose|isLessIe10|jpe|such|post|enableInlineTableEditing|setToPoint|Infinity|nextNode|SHOW_TEXT|AutoUrlDetect|done|ajax|112|reg|No|107|enableObjectResizing|strict|1000|getCoords|setInterval|111|Horizontal|removeChild|setAwesome|offsetWidth|Justify|addFirst|addBefore|Rule|110|109|removeIcon|autosaveError|createTreeWalker|NodeFilter|caretOffset|setStartBefore|disable|changeIcon|setEndAfter|u2122|trade|application|blurCallback|WordDocument|addAfter|TEXTAREA|sdata|getOwnPropertyNames|converted|xml|1strike|shapes|merge|Deleted|115|applet|spacerun|yes|floor|use|113|u2026|hellip|u2014|101|abs|106|u00a9|copy|102|103|u2010|dash|toggleAttr|setAttr|toggleData|setData|mdash|slevel|hexToRgb|Below|host|noscript|err|Requested|With|frame|insertHtml|insert_column_left|clearFileFields|removeImageFields|addImageFields|clearImageFields|insert_row_below|php|addBack|insert_row_above|insert_table||500|frameborder|281|Above|uploadImageFields|uploadFileFields|POST|createLink|insertedLink|deletedLink|addFileFields|removeFileFields|context|enter|FOOTER|ASIDE|0px|onload|optional|222|220|rows|delete_table|onprogress|onerror|PUT|_|user|defined|charset|fromPoint|GET|plain|extractContents|insert_column_right|delete_row|fromCharCode|Key|withCredentials|delete_column|allowfullscreen|uploadStart|times|Close|9999px|overlay|bull|jQuery|labelledby|dialog|cursor|Outdent|move|pasteBefore|Quote|fast|bodyOveflow|unselectable|addButton|specified|backcolor||fontcolor||Font|Back|toggleActive||Ordered|modalClosed|Bold|Unordered|hasOwnProperty|Normal|Indent|getNext|nextSibling|previousSibling|relative|Unlink|Cancel|Save|HTML|ARTICLE|player|grep|dragleave|dragover|1500|fadeIn|focusin|modalOpened|email|outerHeight|20px|external|getModal|frameset|Formatting|createTabber|addTab|addTemplate|Content|Type|SECTION|119|Embed|getObject|getBox|getEditor|ADDRESS|118|117|getValue|DT|DD|OUTPUT|getElement|getTextarea|HEADER|Email|Text|121|max|dropdownShow|web|video_html_code|Callback|getToolbar|_data|120|namespace|listSelections|setSelection|menu||esc|cleanEmptyParagraph|capslock|pause|summary|details|pageup|pagedown|getOnlyLinksAndImages|Upload|File|nav|Vimeo|alignleft|DL|116|setSize|refresh|setCursor|Youtube|backspace|alignright|aligncenter|syncBefore|jpeg|ins|Ss|f10|isString|114|columns|iPad|cssText|getHtml|Columns|u200D|189|188|add_head|uFEFF|TR|removeStyle|removeStyleRule|nodeToPoint|amz|192|clientX|Rows|clientY|191|acl|toggleStyle|190|read|public|insertHTML|imageUploadError|delete_head|f12|705|144|numlock|image_web_link|145|123|Web|dropdownHide|122|replaceWithHtml|f11|fileUploadError|dragstart|mousemove|187|None|Position|Title|cloneContents|Italic|dropdownShown|rgb|186|173|touchmove|touchend'.split('|'),0,{})) \ No newline at end of file +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(C($){\'mI m0\';if(!g7.5w.aH){g7.5w.aH=C(eW){E fn=q;F C(){F fn.9E(eW)}}}E 2G=0;$.fn.I=C(44){E 2K=[];E eI=9F.5w.ct.6e(fA,1);if(1s 44===\'6Z\'){q.1B(C(){E 6u=$.1f(q,\'I\');E 1C;if(44.3N(/\\./)!=\'-1\'){1C=44.4o(\'.\');if(1s 6u[1C[0]]!=\'1y\'){1C=6u[1C[0]][1C[1]]}}N{1C=6u[44]}if(1s 6u!==\'1y\'&&$.5k(1C)){E 9L=1C.9E(6u,eI);if(9L!==1y&&9L!==6u){2K.2N(9L)}}N{$.6U(\'lX lL bx "\'+44+\'" 2B 47\')}})}N{q.1B(C(){$.1f(q,\'I\',{});$.1f(q,\'I\',47(q,44))})}if(2K.12===0)F q;N if(2K.12===1)F 2K[0];N F 2K};C 47(el,44){F 2a 47.5w.3Q(el,44)}$.47=47;$.47.l2=\'10.2.2\';$.47.d4=[\'3b\',\'3r\',\'R\',\'25\',\'2o\',\'1t\',\'1V\',\'1x\',\'1e\',\'1X\',\'1n\',\'22\',\'2n\',\'M\',\'3y\',\'28\',\'1Y\',\'1D\',\'2s\',\'1H\',\'3K\',\'V\',\'2z\',\'2e\',\'1a\',\'1R\',\'2V\',\'5C\',\'3f\',\'5E\',\'J\',\'6m\',\'2H\',\'1I\',\'1A\',\'1v\',\'L\'];$.47.G={1H:\'en\',d7:\'l1\',8r:O,2n:O,fP:O,3f:O,6r:1q,6S:O,aG:O,aI:O,1M:O,5Q:1q,2V:1q,fh:O,al:1q,jJ:1q,hj:1q,hL:O,3r:O,d5:O,9m:60,d6:O,9O:O,j4:1q,5c:\'8s\',hR:O,cs:50,dq:1q,hE:1q,hH:1q,8x:\'lE\',dp:1q,75:4e,k1:\'22\',lh:O,fB:1q,76:4e,k2:\'22\',fF:1q,7V:O,a2:1q,c1:1q,bX:1q,93:1q,6v:4,9Y:O,fp:1q,9p:O,1A:1q,iS:1q,6y:1l,6z:0,bf:O,iO:O,4E:1q,4i:[\'B\',\'3a\',\'4n\',\'4m\',\'5Y\',\'5m\',\'5z\',\'7p\',\'3y\',\'M\',\'22\',\'V\',\'3b\',\'b3\'],cw:[],cv:[],3a:[\'p\',\'29\',\'2F\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'],dT:O,2H:1q,4c:[\'3V\',\'1o\'],4z:O,ej:[\'3W\',\'1i\',\'2F\',\'64\',\'3p\',\'ol\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\',\'dl\',\'29\',\'7Y\',\'du\',\'49\',\'87\',\'c8\',\'eE\',\'eS\',\'41\',\'1o\',\'3V\',\'4R\',\'7z\',\'3D\',\'2v\',\'1t\',\'42\',\'iA\',\'fx\',\'lf\',\'hr\',\'iT\',\'lj\',\'l7\',\'pJ\',\'6K\',\'pD\',\'pw\',\'pC\',\'p\'],6G:O,5B:[[\'7c\',\'4h\'],[\'b\',\'5i\']],5A:[[\'3R-7I:\\\\s?4n\',"5i"],[\'3R-1o:\\\\s?4m\',"em"],[\'1g-7a:\\\\s?5x\',"u"],[\'1g-7a:\\\\s?3K-eP\',\'4h\']],5y:O,1K:O,4T:O,6L:[\'1j\'],4f:[\'p\'],b5:[\'5Y\',\'4m\',\'4n\',\'5x\',\'5m\',\'5z\',\'pL\',\'pU\',\'pT\',\'9d\'],cg:{b:\'4n\',5i:\'4n\',i:\'4m\',em:\'4m\',4h:\'5Y\',7c:\'5Y\',3p:\'5m\',ol:\'5z\',u:\'5x\'},6m:{\'48+6E+m, 5h+6E+m\':{1C:\'28.dm\'},\'48+b, 5h+b\':{1C:\'28.30\',6p:[\'4n\']},\'48+i, 5h+i\':{1C:\'28.30\',6p:[\'4m\']},\'48+h, 5h+h\':{1C:\'28.30\',6p:[\'hv\']},\'48+l, 5h+l\':{1C:\'28.30\',6p:[\'hq\']},\'48+k, 5h+k\':{1C:\'V.2O\'},\'48+6E+7\':{1C:\'2e.3m\',6p:[\'5z\']},\'48+6E+8\':{1C:\'2e.3m\',6p:[\'5m\']}},js:O,25:[],9k:[],5S:\'<p>	T;</p>\',6o:\'	T;\',kb:[\'M/jG\',\'M/pW\',\'M/jN\'],ad:20,cW:[\'a\',\'1L\',\'b\',\'5i\',\'7l\',\'7Q\',\'i\',\'em\',\'u\',\'9f\',\'7c\',\'4h\',\'8S\',\'3p\',\'ol\',\'li\'],4N:[\'5i\',\'b\',\'u\',\'em\',\'i\',\'1e\',\'4h\',\'pX\',\'aN\',\'aS\',\'7Q\',\'7l\',\'6A\',\'E\',\'8S\',\'9f\'],8F:[\'P\',\'dK\',\'di\',\'cS\',\'cR\',\'cI\',\'cH\',\'pM\',\'pc\',\'pd\',\'89\',\'6F\',\'aK\',\'pe\',\'hM\',\'p8\',\'p2\',\'ph\',\'nA\',\'nB\',\'oH\'],8q:[\'8o\',\'8D\',\'8N\',\'5v\'],cA:O,1R:{79:[]},kn:{en:{B:\'oG\',6Y:\'6B gx\',M:\'6B hO\',3W:\'dz\',V:\'cO\',ba:\'6B V\',ca:\'jh V\',6P:\'oD\',3a:\'oW\',j2:\'ox 1g\',ci:\'oe\',1e:\'gS\',jb:\'9H 1\',jH:\'9H 2\',jI:\'9H 3\',jM:\'9H 4\',jD:\'9H 5\',4n:\'ou\',4m:\'qO\',om:\'oo j9\',ok:\'op j9\',5m:\'ov jK\',5z:\'os jK\',7p:\'ob\',3y:\'oy\',it:\'oE\',1Y:\'6B\',3o:\'oF\',hK:\'8w\',nk:\'6B dz\',nj:\'9r dV np\',ng:\'9r dV n3\',nb:\'9r co hU\',nU:\'9r co hS\',nZ:\'8w co\',nV:\'8w dV\',nI:\'8w dz\',nH:\'qj\',q2:\'q6\',qa:\'9r hl\',qt:\'8w hl\',1J:\'qM\',cC:\'qL\',5p:\'qK\',2c:\'hU\',4s:\'hS\',5u:\'gn\',qy:\'hO qB cO\',1g:\'pj\',bY:\'pi\',pn:\'cD\',po:\'gx p4 gS or pR/pK cO\',22:\'6B pI\',1v:\'pH\',lo:\'ld\',gc:\'lH\',lI:\'lA gc\',kY:\'jo 22 jm\',jt:\'gz 1g hB eZ 2c\',jx:\'gn 1g\',jB:\'gz 1g hB eZ 4s\',jA:\'m9 1g\',b3:\'6B m5 mc\',5Y:\'mC\',gV:\'ly\',aL:\'lv V in 2a 5I\',5x:\'lC\',3b:\'lu\',6k:\'lc (nE)\',7L:\'jh\',kD:\'jo 22 jm or \'}},2z:{4v:{72:/5o?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:lx\\.be\\/|72\\.a5\\S*[^\\w\\-\\s])([\\w\\-]{11})(?=[^\\w\\-]|$)(?![?=&+%\\w.\\-]*(?:[\'"][^<>]*>|<\\/a>))[?=&+%\\w.-]*/ig,71:/5o?:\\/\\/(7n\\.)?71.a5\\/(\\d+)($|\\/)/,M:/((5o?|7n)[^\\s]+\\.)(lK?g|jG|jN)(\\?[^\\s-]+)?/ig,2i:/(5o?:\\/\\/(?:7n\\.|(?!7n))[^\\s\\.]+\\.[^\\s]{2,}|7n\\.[^\\s]+\\.[^\\s]{2,})/ig,}},8n:O};47.fn=$.47.5w={3j:{84:8,8Q:46,l0:38,dW:40,70:13,a7:32,b2:27,dx:9,fK:17,fL:91,fU:16,fM:18,eB:39,lD:37,g0:91},3Q:C(el,44){q.$2j=$(el);q.2G=2G++;q.7B=O;q.$5e=O;q.jz(44);q.jy();q.3a={};$.mB(q.G.8q,q.G.8F);q.gm=2a 2l(\'^(\'+q.G.8q.3c(\'|\')+\')$\',\'i\');q.1I.ja();if(q.G.4c!==O){E 2d=[\'B\',\'e0\',\'V\',\'31\',\'5h\',\'mE\'];2B(E i=0;i<2d.12;i++){q.G.4c.2N(2d[i])}}q.1H.2R();$.7E(q.G.6m,q.G.js);q.1X.2u(\'2b\');q.2b=1q;q.2o.ki()},jz:C(44){q.G=$.7E({},$.7E(1q,{},$.47.G),q.$2j.1f(),44)},dg:C(41){F g8.mw(41).bW(C(ai){F 1s 41[ai]==\'C\'})},jy:C(){E 2p=$.47.d4.12;2B(E i=0;i<2p;i++){q.iq($.47.d4[i])}},iq:C(6D){if(1s q[6D]==\'1y\')F;q[6D]=q[6D]();E 5X=q.dg(q[6D]);E 2p=5X.12;2B(E z=0;z<2p;z++){q[6D][5X[z]]=q[6D][5X[z]].aH(q)}},3b:C(){F{2c:C(){q.3b.1U(\'\')},4s:C(){q.3b.1U(\'4s\')},5u:C(){q.3b.1U(\'5u\')},9d:C(){q.3b.1U(\'9d\')},1U:C(1m){if(!q.L.1P(\'2E\'))q.$T.2n();q.25.1U();q.J.3o();q.3b.1Z=q.J.3X();q.3b.1m=1m;if(q.3b.ix()){q.3b.im()}N{q.3b.iy()}q.J.3d();q.1e.1S()},im:C(){E 4M=q.J.5Z(\'1i\');$(4M).1c(\'1f-8b\',\'I\').1O(\'1g-5g\',q.3b.1m)},iy:C(){$.1B(q.3b.1Z,$.1d(C(i,el){E $el=q.L.bh(el);if(!$el)F;if(q.3b.il($el)){q.3b.i6($el)}N{q.3b.ib($el)}},q))},ix:C(){F(q.G.1M&&q.3b.1Z[0]===O)},il:C($el){F(q.3b.1m===\'\'&&1s($el.1f(\'8b\'))!==\'1y\')},i6:C($el){$el.2t($el.B())},ib:C($el){$el.1O(\'1g-5g\',q.3b.1m);q.L.5r($el,\'1o\')}}},3r:C(){F{B:O,9Q:C(){if(!q.G.3r)F;q.3r.1w=(q.G.d5)?q.G.d5:q.$2v.1c(\'1w\');if(q.G.d6)F;q.9m=m3(q.3r.2R,q.G.9m*m1)},h7:C(){if(!q.G.d6)F;q.3r.2R()},2R:C(){q.3r.4E=q.1e.1b();if(q.3r.B===q.3r.4E)F;E 1f={};1f[\'1w\']=q.3r.1w;1f[q.3r.1w]=q.3r.4E;1f=q.3r.6V(1f);E ih=$.lU({2i:q.G.3r,1m:\'lM\',1f:1f});ih.lT(q.3r.iR)},6V:C(1f){if(q.G.9O===O||1s q.G.9O!==\'41\'){F 1f}$.1B(q.G.9O,$.1d(C(k,v){if(v!==4e&&v.4y().4Q(\'#\')===0)v=$(v).2K();1f[k]=v},q));F 1f},iR:C(1f){E 2P;52{2P=$.jY(1f)}51(e){2P=1f}E iY=(1s 2P.6U==\'1y\')?\'3r\':\'mg\';q.1X.2u(iY,q.3r.1w,2P);q.3r.B=q.3r.4E},ml:C(){gu(q.9m)}}},R:C(){F{3a:C(1w){q.R.b1=O;E 1m,1E;if(1s q.3a[1w].1f!=\'1y\')1m=\'1f\';N if(1s q.3a[1w].1c!=\'1y\')1m=\'1c\';N if(1s q.3a[1w][\'1G\']!=\'1y\')1m=\'1G\';if(1s q.3a[1w].8M!=\'1y\'){q.R.b1=1q}if(1m)1E=q.3a[1w][1m];q.R.30(q.3a[1w].Y,1m,1E)},30:C(Y,1m,1E){if(Y==\'ci\')Y=\'29\';E iF=[\'p\',\'2F\',\'29\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'];if($.3t(Y,iF)==-1)F;q.R.8I=(Y==\'2F\'||Y.3N(/h[1-6]/i)!=-1);if(!q.L.1P(\'2E\'))q.$T.2n();E B=$.3k(q.$T.B());q.R.3z=q.L.3z(B);if(q.L.1P(\'4b\')&&!q.2n.dO()){if(q.R.3z){E $3I;if(!q.G.1M){$3I=q.$T.3O().3I();q.1V.3P($3I)}}}q.R.1Z=q.J.3X();q.R.7w=q.R.1Z.12;q.R.1m=1m;q.R.1E=1E;q.25.1U();q.J.3o();q.R.1U(Y);q.J.3d();q.1e.1S();q.1R.2R()},1U:C(Y){q.J.1b();q.R.69=q.14.iL.1p;if(q.14.53){q.R.iE(Y)}N{q.R.iB(Y)}},iE:C(Y){if(q.G.1M&&q.R.3z&&Y!=\'p\'){E Q=1l.3w(Y);q.$T.B(Q);q.1V.3P(Q);F}E R=q.R.1Z[0];if(R===O)F;if(R.1p==\'5v\'){if(Y!=\'29\')F;q.R.aF();F}E 9P=(q.R.69==\'6F\'||q.R.69==\'dn\');if(9P&&!q.G.1M){1l.3Z(\'9S\',O,\'<\'+Y+\'>\');R=q.J.4a();q.R.3m($(R))}N if(R.1p.3e()!=Y){if(q.G.1M&&Y==\'p\'){$(R).1F(\'<br>\');q.L.6i(R)}N{E $1W=q.L.4I(R,Y);q.R.3m($1W);if(Y!=\'p\'&&Y!=\'29\')$1W.1h(\'1L\').1u();if(q.R.8I)q.L.4Z($1W);if(Y==\'p\'||q.R.d2)$1W.1h(\'p\').26().3Y();q.R.d0($1W)}}N if(Y==\'29\'&&R.1p.3e()==Y){if(q.G.1M){$(R).1F(\'<br>\');q.L.6i(R)}N{E $el=q.L.4I(R,\'p\');q.R.3m($el)}}N if(R.1p.3e()==Y){q.R.3m($(R))}if(1s q.R.1m==\'1y\'&&1s q.R.1E==\'1y\'){$(R).1K(\'1G\').1K(\'1o\')}},iB:C(Y){E R=q.R.1Z[0];E 9P=(q.R.69==\'6F\'||q.R.69==\'dn\');if(R!==O&&q.R.7w===1){if(R.1p.3e()==Y&&Y==\'29\'){if(q.G.1M){$(R).1F(\'<br>\');q.L.6i(R)}N{E $el=q.L.4I(R,\'p\');q.R.3m($el)}}N if(R.1p==\'5v\'){if(Y!=\'29\')F;q.R.aF()}N if(q.R.69==\'aK\'){q.R.kS(Y)}N if(q.G.1M&&((9P)||(q.14.iL!=R))){q.R.aE(Y)}N{if(q.G.1M&&Y==\'p\'){$(R).6t(\'<br>\').1F(\'<br>\');q.L.6i(R)}N if(R.1p===\'6F\'){q.R.aE(Y)}N{E $1W=q.L.4I(R,Y);q.R.3m($1W);if(q.R.8I)q.L.4Z($1W);if(Y==\'p\'||q.R.d2)$1W.1h(\'p\').26().3Y()}}}N{if(q.G.1M||Y!=\'p\'){if(Y==\'29\'){E d3=0;2B(E i=0;i<q.R.7w;i++){if(q.R.1Z[i].1p==\'aK\')d3++}if(d3==q.R.7w){$.1B(q.R.1Z,$.1d(C(i,s){E $1W=O;if(q.G.1M){$(s).6t(\'<br>\').1F(\'<br>\');$1W=q.L.6i(s)}N{$1W=q.L.4I(s,\'p\')}if($1W&&1s q.R.1m==\'1y\'&&1s q.R.1E==\'1y\'){$1W.1K(\'1G\').1K(\'1o\')}},q));F}}q.R.aE(Y)}N{E 8B=0;E 5G=O;if(q.R.1m==\'1G\'){5G=\'3m\';8B=$(q.R.1Z).bW(\'.\'+q.R.1E).12;if(q.R.7w==8B)5G=\'3m\';N if(q.R.7w>8B)5G=\'1U\';N if(8B===0)5G=\'1U\'}E 9y=[\'3p\',\'ol\',\'li\',\'2Y\',\'5P\',\'dl\',\'dt\',\'dd\'];$.1B(q.R.1Z,$.1d(C(i,s){if($.3t(s.1p.3e(),9y)!=-1)F;E $1W=q.L.4I(s,Y);if(5G){if(5G==\'3m\')q.R.3m($1W);N if(5G==\'1u\')q.R.1u($1W);N if(5G==\'1U\')q.R.kt($1W)}N q.R.3m($1W);if(Y!=\'p\'&&Y!=\'29\')$1W.1h(\'1L\').1u();if(q.R.8I)q.L.4Z($1W);if(Y==\'p\'||q.R.d2)$1W.1h(\'p\').26().3Y();if(1s q.R.1m==\'1y\'&&1s q.R.1E==\'1y\'){$1W.1K(\'1G\').1K(\'1o\')}},q))}}},kt:C($el){if(q.R.b1){$el.1K(\'1G\').1K(\'1o\')}if(q.R.1m==\'1G\'){$el.2f(q.R.1E);F}N if(q.R.1m==\'1c\'||q.R.1m==\'1f\'){$el.1c(q.R.1E.1w,q.R.1E.1E);F}},3m:C($el){if(q.R.b1){$el.1K(\'1G\').1K(\'1o\')}if(q.R.1m==\'1G\'){$el.7O(q.R.1E);F}N if(q.R.1m==\'1c\'||q.R.1m==\'1f\'){if($el.1c(q.R.1E.1w)==q.R.1E.1E){$el.1K(q.R.1E.1w)}N{$el.1c(q.R.1E.1w,q.R.1E.1E)}F}N{$el.1K(\'1o 1G\');F}},1u:C($el){$el.2S(q.R.1E)},aF:C(){E R=$(q.R.1Z[0]).2q(\'3p, ol\',q.$T[0]);$(R).1h(\'3p, ol\').26().3Y();$(R).1h(\'li\').1F($(\'<br>\')).26().3Y();E $el=q.L.4I(R,\'29\');q.R.3m($el)},kS:C(Y){1l.3Z(\'7p\');1l.3Z(\'9S\',O,Y);q.1x.4r();q.$T.1h(\'p:kh\').1u();E 1W=q.J.4a();if(Y!=\'p\'){$(1W).1h(\'1L\').1u()}if(!q.G.1M){q.R.3m($(1W))}q.$T.1h(\'3p, ol, 6O, 29, p\').1B($.1d(q.L.4f,q));if(q.G.1M&&Y==\'p\'){q.L.6i(1W)}},aE:C(Y){if(q.R.69==\'8D\'||q.R.69==\'8N\'){if(Y==\'29\'){q.R.aF()}N{F}}E 1W=q.J.5Z(Y);if(1W===O)F;E $1W=$(1W);q.R.d0($1W);E $jR=$1W.1h(q.G.8q.3c(\',\')+\', 2Y, 3W, e7, ee, e3, 5P, 6O\');$jR.26().3Y();if(Y!=\'p\'&&Y!=\'29\')$1W.1h(\'1L\').1u();$.1B(q.R.1Z,$.1d(q.L.4f,q));$1W.1F(q.J.6Q(2));if(!q.G.1M){q.R.3m($1W)}q.$T.1h(\'3p, ol, 6O, 29, p\').1B($.1d(q.L.4f,q));$1W.1h(\'29:kh\').1u();if(q.R.8I){q.L.4Z($1W)}if(q.G.1M&&Y==\'p\'){q.L.6i($1W)}if(q.G.1M){E $1N=$1W.1N().1N();if($1N.9B()!=0&&$1N[0].1p===\'58\'){$1N.1u()}}},d0:C($1W){if($1W.2q(\'3W\',q.$T[0]).12===0)F;if($1W.2q(\'6O\',q.$T[0]).12===0)$1W.5Z(\'<6O>\');if($1W.2q(\'2Y\',q.$T[0]).12===0&&$1W.2q(\'5P\').12===0){$1W.5Z(\'<2Y>\')}},gv:C(1w,1E){E 1Z=q.J.3X();$(1Z).1K(\'1f-\'+1w);q.1e.1S()},mZ:C(1w,1E){E 1Z=q.J.3X();$(1Z).1c(\'1f-\'+1w,1E);q.1e.1S()},mY:C(1w,1E){E 1Z=q.J.3X();$.1B(1Z,C(){if($(q).1c(\'1f-\'+1w)){$(q).1K(\'1f-\'+1w)}N{$(q).1c(\'1f-\'+1w,1E)}})},1K:C(1c,1E){E 1Z=q.J.3X();$(1Z).1K(1c);q.1e.1S()},mX:C(1c,1E){E 1Z=q.J.3X();$(1Z).1c(1c,1E);q.1e.1S()},mW:C(1c,1E){E 1Z=q.J.3X();$.1B(1Z,C(){if($(q).1c(1w)){$(q).1K(1w)}N{$(q).1c(1w,1E)}})},2S:C(3E){E 1Z=q.J.3X();$(1Z).2S(3E);q.L.5r(1Z,\'1G\');q.1e.1S()},8g:C(3E){E 1Z=q.J.3X();$(1Z).2f(3E);q.1e.1S()},7O:C(3E){E 1Z=q.J.3X();$(1Z).7O(3E);q.1e.1S()}}},25:C(){F{1U:C(1m){if(1s 1m==\'1y\'||1m==\'9l\'){q.25.kV()}N{q.25.kM()}},kV:C(){q.J.3o();q.G.25.2N(q.$T.B());q.J.3d()},kM:C(){q.J.3o();q.G.9k.2N(q.$T.B());q.J.3d()},kd:C(){q.$T.B(q.G.25.kW())},kj:C(){q.$T.B(q.G.9k.kW())},cQ:C(){q.G.25.2N(q.$T.B())},9l:C(){if(q.G.25.12===0)F;q.25.1U(\'a9\');q.25.kd();q.J.3d();3A($.1d(q.1R.2R,q),50)},a9:C(){if(q.G.9k.12===0)F;q.25.1U(\'9l\');q.25.kj();q.J.3d();3A($.1d(q.1R.2R,q),50)}}},2o:C(){F{ki:C(){q.2o.jW();q.2o.kz();q.2o.kK();q.2o.kF();q.2o.k5()},aa:C(){F(q.$2j[0].1p===\'mu\')},jW:C(){q.$2Q=$(\'<1i 1G="I-2Q" 9c="mq" />\')},k7:C(){q.$2v=$(\'<2v />\').1c(\'1w\',q.2o.ku())},ku:C(){F((1s(1w)==\'1y\'))?\'d1-\'+q.2G:q.$2j.1c(\'id\')},kz:C(){E 1C=(q.2o.aa())?\'2K\':\'B\';q.d1=$.3k(q.$2j[1C]())},kF:C(){q.$T.1c({\'5d\':1q,\'kU\':q.G.d7})},kK:C(){E 1C=(q.2o.aa())?\'kk\':\'ke\';q.2o[1C]()},kk:C(){q.$T=$(\'<1i />\');q.$2v=q.$2j;q.$2Q.jX(q.$2j).1F(q.$T).1F(q.$2j);q.$T.2f(\'I-T\');q.$2j.3v()},ke:C(){q.$T=q.$2j;q.2o.k7();q.$2Q.jX(q.$T).1F(q.$T).1F(q.$2v);q.$T.2f(\'I-T\');q.$2v.3v()},k5:C(){q.1e.1U(q.d1);q.2o.kO();q.2o.kH();if(q.G.6r)F;3A($.1d(q.1e.dJ,q),bt)},kH:C(){q.2o.eD();q.2o.ex();q.2o.fD();q.2o.fR();if(q.G.1A){q.G.1A=q.1A.3Q();q.1A.2o()}q.1a.iW();q.2o.8r();3A($.1d(q.1R.2R,q),4);q.1X.2u(\'3Q\')},kO:C(){$(q.$2v).1c(\'kU\',q.G.d7);if(q.G.1M)q.$T.2f(\'I-1M\');if(q.G.6S)q.$T.1c(\'6S\',q.G.6S);if(q.G.aG)q.$T.1O(\'aG\',q.G.aG);if(q.G.aI)q.$T.1O(\'aI\',q.G.aI)},fg:C(e){e.2w();if(!q.G.fB||!q.G.fF)F;E 5R=e.bG.5R;q.1v.kQ(5R[0],e)},ft:C(e){q.1e.1S();3A(q.1x.4r,1);q.1X.2u(\'57\',e)},fD:C(){q.$T.on(\'57.I\',$.1d(C(e){e=e.7T||e;if(3l.b6===1y||!e.bG)F 1q;if(e.bG.5R.12===0){F q.2o.ft(e)}N{q.2o.fg(e)}3A(q.1x.4r,1);q.1X.2u(\'57\',e)},q));q.$T.on(\'2y.I\',$.1d(C(e){E 8e=q.1X.7g();E 1m=(8e==\'2y\'||8e==\'4W\')?O:\'2y\';q.1X.9K(1m);q.L.8U();q.1X.2u(\'2y\',e)},q));q.$T.on(\'5C.I\',$.1d(q.5C.3Q,q));q.$T.on(\'l4.I\',$.1d(q.1e.1S,q));q.$T.on(\'1D.I\',$.1d(q.1D.3Q,q));q.$T.on(\'2s.I\',$.1d(q.2s.3Q,q));if($.5k(q.G.fo)){q.$2v.on(\'1D.I-2v\',$.1d(q.G.fo,q))}if($.5k(q.G.fZ)){q.$2v.on(\'2s.I-2v\',$.1d(q.G.fZ,q))}if($.5k(q.G.fW)){q.$T.on(\'2n.I\',$.1d(q.G.fW,q))}$(1l).on(\'6R.I.\'+q.2G,$.1d(C(e){q.8h=e.1Q},q));q.$T.on(\'fI.I\',$.1d(C(e){if(q.2b)F;if(q.7B)F;if(!q.2o.fO())F;q.L.8U();if($.5k(q.G.mr))q.1X.2u(\'fI\',e)},q))},fO:C(){if(q.8h===1q)F 1q;E $el=$(q.8h);F(!$el.3i(\'I-1A, I-1n\')&&!$el.is(\'#I-1a\')&&$el.dL(\'.I-1A, .I-1n, #I-1a\').12===0)},fR:C(){if(q.2z.aD()){q.2z.30()}q.3f.9Q();if(q.G.2n)3A(q.2n.2W,88);if(q.G.fP)3A(q.2n.3P,88)},8r:C(){if(!q.G.8r)F;$.1B(q.G.8r,$.1d(C(i,s){E 1C=(1s df!==\'1y\'&&1s df[s]!==\'1y\')?df:47.fn;if(!$.5k(1C[s])){F}q[s]=1C[s]();E 5X=q.dg(q[s]);E 2p=5X.12;2B(E z=0;z<2p;z++){q[s][5X[z]]=q[s][5X[z]].aH(q)}if($.5k(q[s].3Q)){q[s].3Q()}},q))},eD:C(){if(!q.L.1P(\'4b\'))F;52{1l.3Z(\'lZ\',O,O);1l.3Z(\'lN\',O,O)}51(e){}},ex:C(){if(!q.L.1P(\'2E\'))F;1l.3Z("lS",O,O)}}},1t:C(){F{2o:C(2g,2X){E $1t=$(\'<a 2k="#" 1G="3J-8R 3J-\'+2g+\'" 3T="\'+2g+\'" />\').1c({\'9c\':\'1t\',\'4K-2L\':2X.1J,\'6S\':\'-1\'});if(2X.1C||2X.4A||2X.1n){q.1t.eu($1t,2g,2X)}if(2X.1n){$1t.2f(\'I-1A-V-1n\').1c(\'4K-eY\',1q);E $1n=$(\'<1i 1G="I-1n I-1n-\'+q.2G+\' I-1n-2Q-\'+2g+\'" 1o="6N: 5p;">\');$1t.1f(\'1n\',$1n);q.1n.2o(2g,$1n,2X.1n)}if(q.L.7b()){q.1t.et($1t,2g,2X.1J)}F $1t},eu:C($1t,2g,2X){$1t.on(\'5H 2y\',$.1d(C(e){if($1t.3i(\'I-1t-7o\'))F O;E 1m=\'1C\';E 2A=2X.1C;if(2X.4A){1m=\'4A\';2A=2X.4A}N if(2X.1n){1m=\'1n\';2A=O}q.1t.ac(e,2g,1m,2A)},q))},et:C($1t,1w,1J){E $3q=$(\'<1j>\').2f(\'I-1A-3q I-1A-3q-\'+q.2G+\' I-1A-3q-\'+1w).3v().B(1J);$3q.aU(\'31\');$1t.on(\'ay\',C(){if($(q).3i(\'I-1t-7o\'))F;E 3s=$1t.2I();$3q.2O();$3q.1O({2U:(3s.2U+$1t.6c())+\'px\',2c:(3s.2c+$1t.7P()/2-$3q.7P()/2)+\'px\'})});$1t.on(\'az\',C(){$3q.3v()})},ac:C(e,2g,1m,2A){q.1t.mj=q.1V.ar();e.2w();if(q.L.1P(\'2E\'))e.8l=O;if(1m==\'4A\')q.28.30(2A);N if(1m==\'1n\')q.1n.2O(e,2g);N q.1t.ep(e,2A,2g)},ep:C(e,2A,2g){E 1C;q.8h=1q;if($.5k(2A))2A.6e(q,2g);N if(2A.3N(/\\./)!=\'-1\'){1C=2A.4o(\'.\');if(1s q[1C[0]]==\'1y\')F;q[1C[0]][1C[1]](2g)}N q[2A](2g);q.1R.4i(e,2g)},1b:C(1k){F q.$1A.1h(\'a.3J-\'+1k)},9q:C(1k){q.1t.1b(1k).2f(\'I-8A\')},ge:C(1k){q.1t.1b(1k).2S(\'I-8A\')},cj:C(1k){if(1s 1k===\'1y\'){q.$1A.1h(\'a.3J-8R\').2S(\'I-8A\')}N{q.$1A.1h(\'a.3J-8R\').6h(\'.3J-\'+1k).2S(\'I-8A\')}},gf:C(){q.$1A.1h(\'a.3J-8R\').6h(\'a.3J-B, a.3J-fe\').2S(\'I-1t-7o\')},gT:C(){q.$1A.1h(\'a.3J-8R\').6h(\'a.3J-B, a.3J-fe\').2f(\'I-1t-7o\')},mm:C(1k,av){q.1t.1b(1k).2f(\'3J-\'+av)},mf:C(1k,av){q.1t.1b(1k).2S(\'3J-\'+av)},m7:C(1k,1w){E $1t=q.1t.1b(1k);$1t.2S(\'I-21-M\').2f(\'fa-I-21\');$1t.B(\'<i 1G="fa \'+1w+\'"></i>\')},cB:C($21,2A){if($21=="25")F;E 1m=(2A==\'1n\')?\'1n\':\'1C\';E 1k=$21.1c(\'3T\');$21.on(\'5H 2y\',$.1d(C(e){if($21.3i(\'I-1t-7o\'))F O;q.1t.ac(e,1k,1m,2A)},q))},cc:C($21,1n){$21.2f(\'I-1A-V-1n\').1c(\'4K-eY\',1q);E 1k=$21.1c(\'3T\');q.1t.cB($21,\'1n\');E $1n=$(\'<1i 1G="I-1n I-1n-\'+q.2G+\' I-1n-2Q-\'+1k+\'" 1o="6N: 5p;">\');$21.1f(\'1n\',$1n);if(1n)q.1n.2o(1k,$1n,1n);F $1n},cQ:C(1k,1J){if(!q.G.1A)F;if(q.1t.9v(1k))F"25";E 21=q.1t.2o(1k,{1J:1J});21.2f(\'I-21-M\');q.$1A.1F($(\'<li>\').1F(21));F 21},ma:C(1k,1J){if(!q.G.1A)F;if(q.1t.9v(1k))F"25";E 21=q.1t.2o(1k,{1J:1J});21.2f(\'I-21-M\');q.$1A.6t($(\'<li>\').1F(21));F 21},mt:C(fb,1k,1J){if(!q.G.1A)F;if(q.1t.9v(1k))F"25";E 21=q.1t.2o(1k,{1J:1J});21.2f(\'I-21-M\');E $21=q.1t.1b(fb);if($21.12!==0)$21.1r().3F($(\'<li>\').1F(21));N q.$1A.1F($(\'<li>\').1F(21));F 21},mb:C(f0,1k,1J){if(!q.G.1A)F;if(q.1t.9v(1k))F"25";E 21=q.1t.2o(1k,{1J:1J});21.2f(\'I-21-M\');E $21=q.1t.1b(f0);if($21.12!==0)$21.1r().a6($(\'<li>\').1F(21));N q.$1A.1F($(\'<li>\').1F(21));F 21},1u:C(1k){q.1t.1b(1k).1u()},9v:C(1k){F(1k=="9l"||1k=="a9")&&!q.L.7b()}}},1V:C(){F{2W:C(Q){if(!q.L.6X(Q)){E 3g=q.L.bH();$(Q).6t(3g);q.1V.3P(3g)}N{q.1V.1U(Q,0,Q,0)}},3P:C(Q){Q=Q[0]||Q;if(Q.eR.a8==1){F q.1V.54(Q.eR)}q.1V.1U(Q,1,Q,1)},1U:C(4P,eL,77,hs){4P=4P[0]||4P;77=77[0]||77;if(q.L.7J(4P.1p)&&4P.3x===\'\'){4P.3x=q.G.6o}if(4P.1p==\'58\'&&q.G.1M===O){E 1r=$(q.G.5S)[0];$(4P).2t(1r);4P=1r;77=4P}q.J.1b();52{q.14.2W(4P,eL);q.14.3P(77,hs)}51(e){}q.J.4l()},54:C(Q){52{E Y=$(Q)[0].1p;if(Y!=\'58\'&&!q.L.6X(Q)){E 3g=q.L.bH();$(Q).3F(3g);q.1V.3P(3g)}N{if(Y!=\'58\'&&q.L.1P(\'2E\')){q.1V.2W($(Q).1N())}N{q.1V.d9(Q,\'3F\')}}}51(e){E 3g=q.L.bH();$(Q).3F(3g);q.1V.3P(3g)}},bT:C(Q){if(q.L.6X(Q)){q.1V.3P($(Q).4G())}N{q.1V.d9(Q,\'a6\')}},d9:C(Q,1m){if(!q.L.1P(\'2E\'))q.$T.2n();Q=Q[0]||Q;q.J.1b();if(1m==\'3F\'){52{q.14.9I(Q);q.14.mn(Q)}51(e){}}N{52{q.14.mk(Q);q.14.ks(Q)}51(e){}}q.14.43(O);q.J.4l()},b4:C(Q){Q=Q[0]||Q;q.J.1b();E at=q.14.7S();at.9j(Q);at.3P(q.14.bQ,q.14.bO);F $.3k(at.4y()).12},ar:C(){E 2I=0;E 2T=3l.4D();if(2T.7A>0){E 14=3l.4D().6l(0);E aJ=14.7S();aJ.9j(q.$T[0]);aJ.3P(14.bQ,14.bO);2I=aJ.4y().12}F 2I},eh:C(2b,2h){if(1s 2h==\'1y\')2h=2b;if(!q.2n.dO())q.2n.2W();E 2T=q.J.1b();E Q,2I=0;E hn=1l.mh(q.$T[0],mi.lR,4e,4e);56(Q==hn.lQ()){2I+=Q.5O.12;if(2I>2b){q.14.2W(Q,Q.5O.12+2b-2I);2b=lP}if(2I>=2h){q.14.3P(Q,Q.5O.12+2h-2I);6n}}q.14.43(O);q.J.4l()},lO:C(2b,2h){q.1V.eh(2b,2h)},m2:C(){F q.1V.ar()}}},1x:C(){F{gH:C(B){B=B.K(/<3V(.*?[^>]?)>([\\w\\W]*?)<\\/3V>/gi,\'<2F 1G="I-3V-Y" 1o="6N: 5p;" $1>$2</2F>\');B=B.K(/\\$/g,\'$\');B=B.K(/<a 2k="(.*?[^>]?)®(.*?[^>]?)">/gi,\'<a 2k="$1&lW$2">\');if(q.G.5Q)B=q.1x.5Q(B);if(q.G.1M)B=q.1x.8C(B);B=q.1x.cT(B);E $1i=$(\'<1i>\');$1i.B(B);E da=$1i.1h(\'3R[1o]\');if(da.12!==0){da.2t(C(){E $el=$(q);E $1j=$(\'<1j>\').1c(\'1o\',$el.1c(\'1o\'));F $1j.1F($el.26())});B=$1i.B()}$1i.1u();B=B.K(/<3R(.*?[^<])>/gi,\'\');B=B.K(/<\\/3R>/gi,\'\');B=q.1I.2R(B);if(q.G.2V)B=q.2V.2R(B);B=q.1x.7R(B);B=q.1x.cU(B);B=B.K(/&9o;/g,\'&\');F B},9R:C(B){B=B.K(/\\6g/g,\'\');B=B.K(/	T;/gi,\'\');if(q.G.hj){B=B.K(/&5s;/gi,\' \')}if(B.3N(/^<p>(||\\s||<br\\s?\\/?>||&5s;)<\\/p>$/i)!=-1){F\'\'}B=B.K(/<2F 1G="I-3V-Y" 1o="6N: 5p;"(.*?[^>]?)>([\\w\\W]*?)<\\/2F>/gi,\'<3V$1>$2</3V>\');B=q.1x.gG(B);E hZ={\'\\mo\':\'∓\',\'\\mQ\':\'&mR;\',\'\\mK\':\'&mL;\',\'\\mM\':\'&n0;\',\'\\mU\':\'&mV;\'};$.1B(hZ,C(i,s){B=B.K(2a 2l(i,\'g\'),s)});if(q.L.1P(\'4b\')){B=B.K(/<br\\s?\\/?>$/gi,\'\')}B=B.K(2a 2l(\'<br\\\\s?/?></li>\',\'gi\'),\'</li>\');B=B.K(2a 2l(\'</li><br\\\\s?/?>\',\'gi\'),\'</li>\');B=B.K(/<(.*?)3T="\\s*?"(.*?[^>]?)>/gi,\'<$1$2">\');B=B.K(/<(.*?)1o="\\s*?"(.*?[^>]?)>/gi,\'<$1$2">\');B=B.K(/="">/gi,\'>\');B=B.K(/""">/gi,\'">\');B=B.K(/"">/gi,\'">\');B=B.K(/<1i(.*?[^>]) 1f-8b="I"(.*?[^>])>/gi,\'<1i$1$2>\');B=B.K(/<(.*?) 1f-3H="I"(.*?[^>])>/gi,\'<$1$2>\');E $1i=$("<1i/>").B($.dQ(B,1l,1q));$1i.1h("1j").1K("3T");$1i.1h(\'2F .I-7s-3g\').1B(C(){$(q).26().3Y()});B=$1i.B();B=B.K(/<1L(.*?[^>])3T="(.*?[^>])"(.*?[^>])>/gi,\'<1L$1$3>\');B=B.K(/<1j 1G="I-7s-3g">(.*?)<\\/1j>/gi,\'$1\');B=B.K(/ 1f-3o-2i="(.*?[^>])"/gi,\'\');B=B.K(/<1j(.*?)id="I-M-2Q"(.*?[^>])>([\\w\\W]*?)<1L(.*?)><\\/1j>/gi,\'$3<1L$4>\');B=B.K(/<1j(.*?)id="I-M-8f"(.*?[^>])>(.*?)<\\/1j>/gi,\'\');B=B.K(/<1j(.*?)id="I-M-5l"(.*?[^>])>(.*?)<\\/1j>/gi,\'\');B=B.K(/<3R(.*?[^<])>/gi,\'\');B=B.K(/<\\/3R>/gi,\'\');B=q.1I.2R(B);if(q.G.hR){B=B.K(/<a(.*?)3T="hG"(.*?[^>])>/gi,\'<a$1$2>\');B=B.K(/<a(.*?[^>])>/gi,\'<a$1 3T="hG">\')}B=B.K(/\\mv-I-(Y|1G|1o)="(.*?[^>])"/gi,\'\');B=B.K(2a 2l(\'<(.*?) 1f-3H="I"(.*?[^>])>\',\'gi\'),\'<$1$2>\');B=B.K(2a 2l(\'<(.*?) 1f-3H="I">\',\'gi\'),\'<$1>\');B=B.K(/&9o;/g,\'&\');F B},8y:C(B,8i){B=$.3k(B);B=B.K(/\\$/g,\'$\');B=B.K(/<1j 1G="s[0-9]">/gi,\'<1j>\');B=B.K(/<1j 1G="hN-mx-3g">&5s;<\\/1j>/gi,\' \');B=B.K(/<1j 1G="hN-5I-1j"[^>]*>\\t<\\/1j>/gi,\'\\t\');B=B.K(/<1j[^>]*>(\\s|&5s;)<\\/1j>/gi,\' \');if(q.G.hL){F q.1x.aj(B)}if(!q.L.9w()&&1s 8i==\'1y\'){if(q.L.4S([\'hM\',\'A\'])){F q.1x.aj(B,O)}if(q.L.4S(\'8o\')){B=B.K(/â€/g,\'"\');B=B.K(/“/g,\'"\');B=B.K(/‘/g,\'\\\'\');B=B.K(/’/g,\'\\\'\');F q.1x.gK(B)}if(q.L.4S([\'aK\',\'dK\',\'di\',\'cS\',\'cR\',\'cI\',\'cH\'])){B=q.1x.gL(B);if(!q.L.1P(\'2E\')){E R=q.J.4a();if(R&&R.1p==\'P\'){B=B.K(/<1L(.*?)>/gi,\'<p><1L$1></p>\')}}F B}if(q.L.4S([\'6F\'])){B=q.1x.b0(B,\'2Y\');if(q.G.1M)B=q.1x.8C(B);B=q.1x.gF(B);F B}if(q.L.4S([\'5v\'])){F q.1x.b0(B,\'li\')}}B=q.1x.gP(B,8i);if(!q.1x.9D){if(q.G.1M)B=q.1x.8C(B);if(q.G.5Q)B=q.1x.5Q(B);B=q.1x.cT(B)}B=q.1x.ha(B);B=q.1x.gb(B);B=q.1x.b0(B,\'gB\');if(!q.1x.9D&&q.G.2V){B=q.2V.2R(B)}B=q.1x.gO(B);B=q.1x.gZ(B);B=q.1x.h0(B);B=q.1x.cU(B);F B},ha:C(B){B=B.K(/<!--[\\s\\S]*?-->/gi,\'\');B=B.K(/<1o[^>]*>[\\s\\S]*?<\\/1o>/gi,\'\');B=B.K(/<o\\:p[^>]*>[\\s\\S]*?<\\/o\\:p>/gi,\'\');if(B.1T(/1G="?gd|1o="[^"]*\\gr-|1o=\'[^\'\']*\\gr-|w:ms/i)){B=B.K(/<!--[\\s\\S]+?-->/gi,\'\');B=B.K(/<(!|3V[^>]*>.*?<\\/3V(?=[>\\s])|\\/?(\\?my(:\\w+)?|1L|5h|V|1o|\\w:\\w+)(?=[\\s\\/>]))[^>]*>/gi,\'\');B=B.K(/<(\\/?)s>/gi,"<$mz>");B=B.K(/ /gi,\' \');B=B.K(/<1j\\s+1o\\s*=\\s*"\\s*aY-mF\\s*:\\s*mG\\s*;?\\s*"\\s*>([\\s\\9Z]*)<\\/1j>/gi,C(5f,aW){F(aW.12>0)?aW.K(/./," ").ct(8d.mH(aW.12/2)).4o("").3c("\\9Z"):\'\'});B=q.1x.gQ(B);B=B.K(/<1L(.*?)v:mA=(.*?)>/gi,\'\');B=B.K(/4t="22\\:\\/\\/(.*?)"/,\'4t=""\');E $1i=$("<1i/>").B(B);E 5T=O;E 8V=1;E cY=[];$1i.1h("p[1o]").1B(C(){E 3M=$(q).1c(\'1o\').1T(/aY\\-2e\\:l([0-9]+)\\n1([0-9]+)/);if(3M){E 5V=5L(3M[1]);E 5W=5L(3M[2]);E cX=$(q).B().1T(/^[\\w]+\\./)?"ol":"3p";E $li=$("<li/>").B($(q).B());$li.B($li.B().K(/^([\\w\\.]+)</,\'<\'));$li.1h("1j:3I").1u();if(5W==1&&$.3t(5V,cY)==-1){E $2e=$("<"+cX+"/>").1c({"1f-7h":5W,"1f-2e":5V}).B($li);$(q).2t($2e);5T=5V;cY.2N(5V)}N{if(5W>8V){E $aV=$1i.1h(\'[1f-7h="\'+8V+\'"][1f-2e="\'+5T+\'"]\');E $5T=$aV;2B(E i=8V;i<5W;i++){$2e=$("<"+cX+"/>");$2e.aU($5T.1h("li").2Z());$5T=$2e}$5T.1c({"1f-7h":5W,"1f-2e":5V}).B($li)}N{E $aV=$1i.1h(\'[1f-7h="\'+5W+\'"][1f-2e="\'+5V+\'"]\').2Z();$aV.1F($li)}8V=5W;5T=5V;$(q).1u()}}});$1i.1h(\'[1f-7h][1f-2e]\').1K(\'1f-7h 1f-2e\');B=$1i.B();B=B.K(/·/g,\'\');B=B.K(/<p 1G="gd(.*?)"/gi,\'<p\');B=B.K(/ 1G=\\"(aY[^\\"]*)\\"/gi,"");B=B.K(/ 1G=(aY\\w+)/gi,"");B=B.K(/<o:p(.*?)>([\\w\\W]*?)<\\/o:p>/gi,\'$2\');B=B.K(/\\n/g,\' \');B=B.K(/<p>\\n?<li>/gi,\'<li>\')}F B},gb:C(B){B=B.K(/<b\\l6="g9-4E-2r(.*?)">([\\w\\W]*?)<\\/b>/gi,"$2");B=B.K(/<b(.*?)id="l5-g9-l9(.*?)">([\\w\\W]*?)<\\/b>/gi,"$3");B=B.K(/<1j[^>]*(3R-1o: 4m; 3R-7I: 4n|3R-7I: 4n; 3R-1o: 4m)[^>]*>/gi,\'<1j 1o="3R-7I: 4n;"><1j 1o="3R-1o: 4m;">\');B=B.K(/<1j[^>]*3R-1o: 4m[^>]*>/gi,\'<1j 1o="3R-1o: 4m;">\');B=B.K(/<1j[^>]*3R-7I: 4n[^>]*>/gi,\'<1j 1o="3R-7I: 4n;">\');B=B.K(/<1j[^>]*1g-7a: 5x[^>]*>/gi,\'<1j 1o="1g-7a: 5x;">\');B=B.K(/<1L>/gi,\'\');B=B.K(/\\n{3,}/gi,\'\\n\');B=B.K(/<3R(.*?)>([\\w\\W]*?)<\\/3R>/gi,\'$2\');B=B.K(/<p><p>/gi,\'<p>\');B=B.K(/<\\/p><\\/p>/gi,\'</p>\');B=B.K(/<li>(\\s*|\\t*|\\n*)<p>/gi,\'<li>\');B=B.K(/<\\/p>(\\s*|\\t*|\\n*)<\\/li>/gi,\'</li>\');B=B.K(/<\\/p>\\s<p/gi,\'<\\/p><p\');B=B.K(/<1L 4t="7q-lz-2i\\:\\/\\/(.*?)"(.*?)>/gi,\'\');B=B.K(/<p>•([\\w\\W]*?)<\\/p>/gi,\'<li>$1</li>\');if(q.L.1P(\'4b\')){B=B.K(/<br\\s?\\/?>$/gi,\'\')}F B},b0:C(B,1m){E 2d=[\'1j\',\'a\',\'2F\',\'29\',\'9f\',\'em\',\'5i\',\'1e\',\'aS\',\'6A\',\'du\',\'8S\',\'E\',\'aN\',\'cL\',\'7Q\',\'7l\',\'b\',\'i\',\'u\',\'4h\',\'ol\',\'3p\',\'li\',\'dl\',\'dt\',\'dd\',\'p\',\'br\',\'6Y\',\'8Y\',\'4R\',\'7i\',\'8J\',\'41\',\'1L\',\'3W\',\'2Y\',\'5P\',\'6O\',\'ee\',\'e3\',\'e7\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'];E cK=O;E cN=[[\'a\',\'*\'],[\'1L\',[\'4t\',\'80\']],[\'1j\',[\'1G\',\'3T\',\'1f-3H\']],[\'4R\',\'*\'],[\'6Y\',\'*\'],[\'8Y\',\'*\'],[\'7i\',\'*\'],[\'41\',\'*\'],[\'8J\',\'*\'],[\'4E\',\'*\']];if(1m==\'gB\'){cK=[\'p\',\'1j\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'];cN=[[\'3W\',\'1G\'],[\'2Y\',[\'lw\',\'la\']],[\'a\',\'*\'],[\'1L\',[\'4t\',\'80\',\'1f-I-8m-M\']],[\'1j\',[\'1G\',\'3T\',\'1f-3H\']],[\'4R\',\'*\'],[\'6Y\',\'*\'],[\'8Y\',\'*\'],[\'7i\',\'*\'],[\'41\',\'*\'],[\'8J\',\'*\'],[\'4E\',\'*\']]}N if(1m==\'2Y\'){2d=[\'3p\',\'ol\',\'li\',\'1j\',\'a\',\'9f\',\'em\',\'5i\',\'1e\',\'aS\',\'6A\',\'8S\',\'E\',\'aN\',\'cL\',\'7Q\',\'7l\',\'b\',\'i\',\'u\',\'4h\',\'ol\',\'3p\',\'li\',\'dl\',\'dt\',\'dd\',\'br\',\'4R\',\'6Y\',\'8Y\',\'7i\',\'8J\',\'41\',\'1L\',\'h1\',\'h2\',\'h3\',\'h4\',\'h5\',\'h6\']}N if(1m==\'li\'){2d=[\'3p\',\'ol\',\'li\',\'1j\',\'a\',\'9f\',\'em\',\'5i\',\'1e\',\'aS\',\'6A\',\'8S\',\'E\',\'aN\',\'cL\',\'7Q\',\'7l\',\'b\',\'i\',\'u\',\'4h\',\'br\',\'4R\',\'6Y\',\'8Y\',\'7i\',\'8J\',\'41\',\'1L\']}E 44={4c:(q.G.4c)?q.G.4c:O,4z:(q.G.4z)?q.G.4z:2d,6G:1q,lg:1q,1K:(q.G.1K)?q.G.1K:O,4T:(q.G.4T)?q.G.4T:cN,4f:cK};F q.1I.2R(B,44)},h0:C(B){B=B.K(/<(p|h[1-6])>(|\\s|\\n|\\t|<br\\s?\\/?>)<\\/(p|h[1-6])>/gi,\'\');if(!q.G.1M)B=B.K(/<br>$/i,\'\');F B},gZ:C(B){B=B.K(/<1j>(.*?)<\\/1j>/gi,\'$1\');B=B.K(/<1j[^>]*>\\s|&5s;<\\/1j>/gi,\' \');F B},gQ:C(B){if(!q.L.1P(\'2E\'))F B;E 5q=$.3k(B);if(5q.3N(/^<a(.*?)>(.*?)<\\/a>$/i)===0){B=B.K(/^<a(.*?)>(.*?)<\\/a>$/i,"$2")}F B},gP:C(B,8i){q.1x.9D=O;if(!q.L.9w()&&1s 8i==\'1y\'){E 1Z=q.G.8q.3c(\'|\').K(\'P|\',\'\').K(\'89|\',\'\');E gD=B.1T(2a 2l(\'</(\'+1Z+\')>\',\'gi\'));E aQ=B.1T(/<\\/(p|1i)>/gi);if(!gD&&(aQ===4e||(aQ&&aQ.12<=1))){E gI=B.1T(/<br\\s?\\/?>/gi);if(!gI){q.1x.9D=1q;B=B.K(/<\\/?(p|1i)(.*?)>/gi,\'\')}}}F B},lq:C(3D,5J){5J=(((5J||\'\')+\'\').3e().1T(/<[a-z][a-7t-9]*>/g)||[]).3c(\'\');E 2d=/<\\/?([a-z][a-7t-9]*)\\b[^>]*>/gi;F 3D.K(2d,C($0,$1){F 5J.4Q(\'<\'+$1.3e()+\'>\')>-1?$0:\'\'})},lr:C(B){B=q.1x.gJ(B);B=q.1x.gN(B);B=q.1x.gM(B);F B},gJ:C(B){E 2F=B.1T(/<2F(.*?)>([\\w\\W]*?)<\\/2F>/gi);if(2F!==4e){$.1B(2F,$.1d(C(i,s){E 2C=s.1T(/<2F(.*?)>([\\w\\W]*?)<\\/2F>/i);2C[2]=2C[2].K(/<br\\s?\\/?>/g,\'\\n\');2C[2]=2C[2].K(/&5s;/g,\' \');if(q.G.6v){2C[2]=2C[2].K(/\\t/g,9F(q.G.6v+1).3c(\' \'))}2C[2]=q.1x.as(2C[2]);2C[2]=2C[2].K(/\\$/g,\'$\');B=B.K(s,\'<2F\'+2C[1]+\'>\'+2C[2]+\'</2F>\')},q))}F B},gN:C(B){E 1e=B.1T(/<1e(.*?)>([\\w\\W]*?)<\\/1e>/gi);if(1e!==4e){$.1B(1e,$.1d(C(i,s){E 2C=s.1T(/<1e(.*?)>([\\w\\W]*?)<\\/1e>/i);2C[2]=2C[2].K(/&5s;/g,\' \');2C[2]=q.1x.as(2C[2]);2C[2]=2C[2].K(/\\$/g,\'$\');B=B.K(s,\'<1e\'+2C[1]+\'>\'+2C[2]+\'</1e>\')},q))}F B},gM:C(B){B=B.K(/<1j id=&5N;J-2r-([0-9])&5N; 1G=&5N;I-J-2r&5N; 1f-3H=&5N;I&5N;>​<\\/1j>/g,\'<1j id="J-2r-$1" 1G="I-J-2r" 1f-3H="I">​</1j>\');F B},cG:C(B){B=B.K(/<br\\s?\\/?>|<\\/H[1-6]>|<\\/p>|<\\/1i>|<\\/li>|<\\/2Y>/gi,\'\\n\');E 5q=1l.3w(\'1i\');5q.3x=B;B=5q.ll||5q.lm;F $.3k(B)},aj:C(B,2V){B=q.1x.cG(B);B=B.K(/\\n/g,\'<br />\');if(q.G.2V&&1s 2V==\'1y\'&&!q.L.1P(\'4b\')){B=q.2V.2R(B)}F B},gK:C(B){B=B.K(/<1L(.*?) 1o="(.*?)"(.*?[^>])>/gi,\'<1L$1$3>\');B=B.K(/<1L(.*?)>/gi,\'<1L$1>\');B=q.1x.cG(B);if(q.G.6v){B=B.K(/\\t/g,9F(q.G.6v+1).3c(\' \'))}B=q.1x.as(B);F B},gL:C(B){B=B.K(/<1L(.*?)>/gi,\'[1L$1]\');B=B.K(/<([pY]*?)>/gi,\'\');B=B.K(/\\[1L(.*?)\\]/gi,\'<1L$1>\');F B},pG:C(B){B=B.K(/<a(.*?)2k="(.*?)"(.*?)>([\\w\\W]*?)<\\/a>/gi,\'[a 2k="$2"]$4[/a]\');B=B.K(/<1L(.*?)>/gi,\'[1L$1]\');B=B.K(/<(.*?)>/gi,\'\');B=B.K(/\\[a 2k="(.*?)"\\]([\\w\\W]*?)\\[\\/a\\]/gi,\'<a 2k="$1">$2</a>\');B=B.K(/\\[1L(.*?)\\]/gi,\'<1L$1>\');F B},as:C(5f){5f=6f(5f).K(/&9o;/g,\'&\').K(/</g,\'<\').K(/>/g,\'>\').K(/&5N;/g,\'"\');F 5f.K(/&/g,\'&9o;\').K(/</g,\'<\').K(/>/g,\'>\').K(/"/g,\'&5N;\')},gO:C(B){if(q.L.1P(\'2E\'))F B;E 1i=1l.3w(\'1i\');1i.3x=B;q.1x.cV($(1i));B=1i.3x;$(1i).1u();F B},4r:C(){if(q.L.1P(\'2E\'))F;q.1x.cV(q.$T);E cP=q.$T.1h(\'h1, h2, h3, h4, h5, h6\');cP.1h(\'1j\').1K(\'1o\');cP.1h(q.G.cW.3c(\', \')).1K(\'1o\');q.1e.1S()},cV:C($T){$T.1h(q.G.cW.3c(\', \')).1K(\'1o\');$T.1h(\'1j\').6h(\'[1f-3H="I"]\').1K(\'1o\');$T.1h(\'1j[1f-3H="I"], 1L[1f-3H="I"]\').1B(C(i,s){E $s=$(s);$s.1c(\'1o\',$s.1c(\'3T\'))})},pz:C(){},7R:C(B){if(q.L.1P(\'2E\'))F B;B=B.K(2a 2l(\'<1L(.*?[^>])>\',\'gi\'),\'<1L$1 1f-3H="I">\');B=B.K(2a 2l(\'<1j(.*?[^>])>\',\'gi\'),\'<1j$1 1f-3H="I">\');E 3M=B.1T(2a 2l(\'<(1j|1L)(.*?)1o="(.*?)"(.*?[^>])>\',\'gi\'));if(3M){E 2p=3M.12;2B(E i=0;i<2p;i++){52{E gE=3M[i].K(/1o="(.*?)"/i,\'1o="$1" 3T="$1"\');B=B.K(3M[i],gE)}51(e){}}}F B},cU:C(B){E $1i=$(\'<1i />\').B(B);E 2d=q.G.4N;2d.2N(\'1j\');$1i.1h(2d.3c(\',\')).1B(C(){E $el=$(q);E Y=q.1p.3e();$el.1c(\'1f-I-Y\',Y);if(Y==\'1j\'){if($el.1c(\'1o\'))$el.1c(\'1f-I-1o\',$el.1c(\'1o\'));N if($el.1c(\'1G\'))$el.1c(\'1f-I-1G\',$el.1c(\'1G\'))}});B=$1i.B();$1i.1u();F B},ap:C(){q.$T.1h(\'li\').1B(C(i,s){E $1N=$(s).1N();if($1N.12!==0&&($1N[0].1p==\'8D\'||$1N[0].1p==\'8N\')){$(s).1F($1N)}})},dH:C(B){B=B.K(/\\n/g,\'\');B=B.K(/[\\t]*/g,\'\');B=B.K(/\\n\\s*\\n/g,"\\n");B=B.K(/^[\\s\\n]*/g,\' \');B=B.K(/[\\s\\n]*$/g,\' \');B=B.K(/>\\s{2,}</g,\'> <\');B=B.K(/\\n\\n/g,"\\n");B=B.K(/\\6g/g,\'\');F B},5Q:C(B){if(q.G.1M){B=B.K(/<1i><br\\s?\\/?><\\/1i>/gi,\'<br />\');B=B.K(/<1i(.*?)>([\\w\\W]*?)<\\/1i>/gi,\'$2<br />\')}N{B=B.K(/<1i(.*?)>([\\w\\W]*?)<\\/1i>/gi,\'<p$1>$2</p>\')}B=B.K(/<1i(.*?[^>])>/gi,\'\');B=B.K(/<\\/1i>/gi,\'\');F B},gF:C(B){B=B.K(/<1i\\s(.*?)>/gi,\'<p>\');B=B.K(/<1i><br\\s?\\/?><\\/1i>/gi,\'<br /><br />\');B=B.K(/<1i>([\\w\\W]*?)<\\/1i>/gi,\'$1<br /><br />\');F B},8C:C(B){B=B.K(/<p\\s(.*?)>/gi,\'<p>\');B=B.K(/<p><br\\s?\\/?><\\/p>/gi,\'<br />\');B=B.K(/<p>([\\w\\W]*?)<\\/p>/gi,\'$1<br /><br />\');B=B.K(/(<br\\s?\\/?>){1,}\\n?<\\/29>/gi,\'</29>\');F B},cT:C(B){F B.K(/<64(.*?)>([\\w\\W]*?)<\\/64>/gi,\'<49$1 3T="I-64-Y">$2</49>\')},gG:C(B){F B.K(/<49(.*?) 3T="I-64-Y"(.*?)>([\\w\\W]*?)<\\/49>/gi,\'<64$1$2>$3</64>\')}}},1e:C(){F{1U:C(B){B=$.3k(B.4y());B=q.1x.gH(B);if(q.L.1P(\'2E\')){B=B.K(/<1j(.*?)id="J-2r-(1|2)"(.*?)><\\/1j>;/gi,\'\')}q.$T.B(B);q.1e.1S();if(B!==\'\')q.3f.1u();3A($.1d(q.25.cQ,q),15);if(q.2b===O)q.1R.2R()},1b:C(){E 1e=q.$2v.2K();if(q.G.5Q)1e=q.1x.5Q(1e);if(q.G.1M)1e=q.1x.8C(1e);1e=q.2H.1b(1e);F 1e},1S:C(){3A($.1d(q.1e.gY,q),10)},gY:C(){E B=q.$T.B();if(q.1e.dh&&q.1e.dh==B){F}q.1e.dh=B;B=q.1X.2u(\'pV\',B);B=q.1x.9R(B);q.$2v.2K(B);q.1X.2u(\'1S\',B);if(q.2b===O){q.1X.2u(\'kR\',B)}q.2b=O;if(q.3r.B==O){q.3r.B=q.1e.1b()}if(q.G.8n){q.$2v.1N(\'.3C\').1B(C(i,el){el.3C.gX(B)})}q.3r.h7();q.3r.9Q()},3m:C(){if(q.G.6r){q.1e.dJ()}N{q.1e.gU()}},dJ:C(){q.J.3o();q.1e.2I=q.1V.ar();E 6b=$(3l).3U();E 2J=q.$T.7P(),3n=q.$T.6c();q.$T.3v();E B=q.$2v.2K();q.gk=q.1x.dH(B);B=q.2H.1b(B);E 2b=0,2h=0;E $6W=$("<1i/>").1F($.dQ(q.1x.9R(q.$T.B()),1l,1q));E $a4=$6W.1h("1j.I-J-2r");if($a4.12>0){E a3=q.2H.1b($6W.B()).K(/&9o;/g,\'&\');if($a4.12==1){2b=q.L.bF(a3,$6W.1h("#J-2r-1").6j("7v"));2h=2b}N if($a4.12==2){2b=q.L.bF(a3,$6W.1h("#J-2r-1").6j("7v"));2h=q.L.bF(a3,$6W.1h("#J-2r-2").6j("7v"))-$6W.1h("#J-2r-1").6j("7v").4y().12}}q.J.8p();q.$2v.2K(B);if(q.G.8n){q.$2v.1N(\'.3C\').1B(C(i,el){$(el).2O();el.3C.gX(B);el.3C.pO(\'88%\',3n);el.3C.pP();if(2b==2h){el.3C.pQ(el.3C.7d(2b).3K,el.3C.7d(2h).ch)}N{el.3C.pv({3K:el.3C.7d(2b).3K,ch:el.3C.7d(2b).ch},{3K:el.3C.7d(2h).3K,ch:el.3C.7d(2h).ch})}el.3C.2n()})}N{q.$2v.3n(3n).2O().2n();q.$2v.on(\'1D.I-2v-gl\',q.1e.ga);$(3l).3U(6b);if(q.$2v[0].gR){q.$2v[0].gR(2b,2h)}q.$2v[0].3U=0}q.G.6r=O;q.1t.gT();q.1t.9q(\'B\');q.1X.2u(\'4E\',B)},gU:C(){E B;if(q.G.6r)F;E 2b=0,2h=0;if(q.G.8n){E J;q.$2v.1N(\'.3C\').1B(C(i,el){J=el.3C.pu();2b=el.3C.gC(J[0].gV);2h=el.3C.gC(J[0].e0);B=el.3C.pb()})}N{2b=q.$2v.1b(0).dE;2h=q.$2v.1b(0).dF;B=q.$2v.3v().2K()}if(2b>2h&&2h>0){E gh=2h;E gg=2b;2b=gh;2h=gg}2b=q.1e.dG(B,2b);2h=q.1e.dG(B,2h);B=B.4x(0,2b)+q.J.5a(1)+B.4x(2b);if(2h>2b){E dI=q.J.5a(1).4y().12;B=B.4x(0,2h+dI)+q.J.5a(2)+B.4x(2h+dI)}if(q.gk!==q.1x.dH(B)){q.1e.1U(B)}if(q.G.8n){q.$2v.1N(\'.3C\').3v()}q.$T.2O();if(!q.L.3z(B)){q.3f.1u()}q.J.3d();q.$2v.3h(\'1D.I-2v-gl\');q.1t.gf();q.1t.ge(\'B\');q.1R.2R();q.G.6r=1q;q.1X.2u(\'6r\',B)},ga:C(e){if(e.3j!==9)F 1q;E $el=q.$2v;E 2b=$el.1b(0).dE;$el.2K($el.2K().aB(0,2b)+"\\t"+$el.2K().aB($el.1b(0).dF));$el.1b(0).dE=$el.1b(0).dF=2b+1;F O},dG:C(B,2I){E dM=B.12;E c=0;if(B[2I]==\'>\'){c++}N{2B(E i=2I;i<=dM;i++){c++;if(B[i]==\'>\'){6n}N if(B[i]==\'<\'||i==dM){c=0;6n}}}F 2I+c}}},1X:C(){F{p5:C(){F $.7E({},q)},p7:C(){F q.$T},p6:C(){F q.$2Q},pf:C(){F q.$2j},pg:C(){F q.$2v},pq:C(){F(q.$1A)?q.$1A:O},9K:C(1w){q.1X.8e=1w},7g:C(){F q.1X.8e},2u:C(1m,e,1f){E 9V=1m+\'pp\';E gy=\'I\';E 2A=q.G[9V];if(q.$2v){E 8l=O;E 9t=$.pr(q.$2v[0],\'9t\');if(1s 9t!=\'1y\'&&1s 9t[9V]!=\'1y\'){$.1B(9t[9V],$.1d(C(1k,1E){if(1E[\'pt\']==gy){E 1f=(1s 1f==\'1y\')?[e]:[e,1f];8l=(1s 1f==\'1y\')?1E.7N.6e(q,e):1E.7N.6e(q,e,1f)}},q))}if(8l)F 8l}if($.5k(2A)){F(1s 1f==\'1y\')?2A.6e(q,e):2A.6e(q,e,1f)}N{F(1s 1f==\'1y\')?e:1f}},gA:C(){q.G.jL=1q;q.1X.2u(\'gA\');q.$2j.3h(\'.I\').gv(\'I\');q.$T.3h(\'.I\');$(1l).3h(\'6R.I.\'+q.2G);$(1l).3h(\'2y.I-M-83.\'+q.2G);$(1l).3h(\'2y.I-M-4J-3v.\'+q.2G);$(1l).3h(\'5H.I.\'+q.2G+\' 2y.I.\'+q.2G);$("31").3h(\'6b.I.\'+q.2G);$(q.G.6y).3h(\'6b.I.\'+q.2G);q.$T.2S(\'I-T I-1M I-3f\');q.$T.1K(\'5d\');E B=q.1e.1b();if(q.G.1A){q.$1A.1h(\'a\').1B(C(){E $el=$(q);if($el.1f(\'1n\')){$el.1f(\'1n\').1u();$el.1f(\'1n\',{})}})}if(q.2o.aa()){q.$2Q.3F(q.$2j);q.$2Q.1u();q.$2j.2K(B).2O()}N{q.$2Q.3F(q.$T);q.$2Q.1u();q.$2j.B(B).2O()}if(q.$5e)q.$5e.1u();if(q.$4F)q.$4F.1u();if(q.$74)q.$74.1u();$(\'.I-1A-3q-\'+q.2G).1u();gu(q.9m)}}},1n:C(){F{2o:C(1w,$1n,dU){if(1w==\'3a\'&&q.G.dT){$.1B(q.G.dT,$.1d(C(i,s){E 1w=s.Y,1C;if(1s s[\'1G\']!=\'1y\'){1w=1w+\'-\'+s[\'1G\']}s.1m=(q.L.7J(s.Y))?\'R\':\'28\';if(1s s.1C!=="1y"){1C=s.1C}N{1C=(s.1m==\'28\')?\'28.3a\':\'R.3a\'}if(q.G.1M&&s.1m==\'R\'&&s.Y==\'p\')F;q.3a[1w]={Y:s.Y,1o:s.1o,\'1G\':s[\'1G\'],1c:s.1c,1f:s.1f,8M:s.8M};dU[1w]={1C:1C,1J:s.1J}},q))}$.1B(dU,$.1d(C(2g,2X){E $2x=$(\'<a 2k="#" 1G="I-1n-\'+2g+\'" 9c="1t">\'+2X.1J+\'</a>\');if(1w==\'3a\')$2x.2f(\'I-3a-\'+2g);$2x.on(\'2y\',$.1d(C(e){e.2w();E 1m=\'1C\';E 2A=2X.1C;if(2X.4A){1m=\'4A\';2A=2X.4A}N if(2X.1n){1m=\'1n\';2A=2X.1n}if($(e.1Q).3i(\'I-1n-V-c9\'))F;q.1t.ac(e,2g,1m,2A);q.1n.7C()},q));q.1R.cc($2x,2g,2X);$1n.1F($2x)},q))},2O:C(e,1k){if(!q.G.6r){e.2w();F O}E $1t=q.1t.1b(1k);E $1n=$1t.1f(\'1n\').aU(1l.31);if(q.G.cA){$1n.2f("I-1n-jP")}if($1t.3i(\'7y\')){q.1n.7C()}N{q.1n.7C();q.1R.79();q.1X.2u(\'pm\',{1n:$1n,1k:1k,1t:$1t});q.1t.9q(1k);$1t.2f(\'7y\');E 7x=$1t.2I();E dS=$1n.2J();if((7x.2c+dS)>$(1l).2J()){7x.2c=8d.pl(0,7x.2c-dS)}E 2c=7x.2c+\'px\';if(q.$1A.3i(\'1A-82-2Q\')){E 2U=q.$1A.6c()+q.G.6z;E 4g=\'82\';if(q.G.6y!==1l){2U=(q.$1A.6c()+q.$1A.2I().2U)+q.G.6z;4g=\'8u\'}$1n.1O({4g:4g,2c:2c,2U:2U+\'px\'}).2O()}N{E 2U=($1t.6c()+7x.2U)+\'px\';$1n.1O({4g:\'8u\',2c:2c,2U:2U}).2O()}q.1X.2u(\'qP\',{1n:$1n,1k:1k,1t:$1t});q.$1n=$1n}$(1l).dR(\'2y.I-1n\',$.1d(q.1n.3v,q));q.$T.dR(\'2y.I-1n\',$.1d(q.1n.3v,q));$(1l).dR(\'2s.I-1n\',$.1d(q.1n.9a,q));$1n.on(\'ay.I-1n\',$.1d(q.L.d8,q)).on(\'az.I-1n\',$.1d(q.L.bJ,q));e.fw()},9a:C(e){if(e.7U!=q.3j.b2)F;q.1n.7C();q.$T.2n()},7C:C(){q.$1A.1h(\'a.7y\').2S(\'I-8A\').2S(\'7y\');q.L.bJ();$(\'.I-1n-\'+q.2G).3v();$(\'.I-1n-V-h9\').2S(\'I-1n-V-h9\');if(q.$1n){q.$1n.3h(\'.I-1n\');q.1X.2u(\'qC\',q.$1n);q.$1n=O}},3v:C(e){E $1n=$(e.1Q);if(!$1n.3i(\'7y\')&&!$1n.3i(\'I-1n-V-c9\')){$1n.2S(\'7y\');$1n.3h(\'ay az\');q.1n.7C()}}}},22:C(){F{2O:C(){q.1a.2R(\'22\',q.1H.1b(\'22\'),hP);q.1v.3Q(\'#I-1a-22-1v\',q.G.76,q.22.1Y);q.J.3o();q.J.1b();E 1g=q.2T.4y();$(\'#I-6k\').2K(1g);q.1a.2O()},1Y:C(2P,4Y,e){if(1s 2P.6U!=\'1y\'){q.1a.4j();q.J.3d();q.1X.2u(\'qG\',2P);F}E V;if(1s 2P==\'6Z\'){V=2P}N{E 1g=$(\'#I-6k\').2K();if(1s 1g==\'1y\'||1g===\'\')1g=2P.6k;V=\'<a 2k="\'+2P.9b+\'" id="9b-2r">\'+1g+\'</a>\'}if(4Y){q.J.8p();E 2r=q.J.6Q();q.1Y.dA(e,2r)}N{q.1a.4j()}q.J.3d();q.25.1U();q.1Y.fc(V);if(1s 2P==\'6Z\')F;E 8t=$(q.$T.1h(\'a#9b-2r\'));if(8t.12!==0){8t.1K(\'id\').1K(\'1o\')}N 8t=O;q.1X.2u(\'76\',8t,2P)}}},2n:C(){F{2W:C(){q.$T.2n();E 3I=q.$T.3O().3I();if(3I.12===0)F;if(3I[0].12===0||3I[0].1p==\'58\'||3I[0].a8==3){F}if(3I[0].1p==\'8D\'||3I[0].1p==\'8N\'){E 4w=3I.1h(\'li\').3I();if(!q.L.6X(4w)&&4w.1g()===\'\'){q.1V.2W(4w);F}}if(q.G.1M&&!q.L.7J(3I[0].1p)){q.J.1b();q.14.2W(q.$T[0],0);q.14.3P(q.$T[0],0);q.J.4l();F}q.1V.2W(3I)},3P:C(){E 2Z=q.$T.3O().2Z();q.$T.2n();if(2Z.9B()===0)F;if(q.L.3z(q.$T.B())){q.J.1b();q.14.43(1q);q.14.9I(2Z[0]);q.14.3P(2Z[0],0);q.J.4l()}N{q.J.1b();q.14.9j(2Z[0]);q.14.43(O);q.J.4l()}},dO:C(){E 8v=1l.4D().8v;if(8v===4e)F O;if(q.G.1M&&$(8v.e4).3i(\'I-1M\'))F 1q;N if(!q.L.4p(8v.e4))F O;F q.$T.is(\':2n\')}}},M:C(){F{2O:C(){q.1a.2R(\'M\',q.1H.1b(\'M\'),hP);q.1v.3Q(\'#I-1a-M-4d\',q.G.75,q.M.1Y);q.J.3o();q.1a.2O()},hc:C($M){E $V=$M.2q(\'a\',q.$T[0]);q.1a.2R(\'iX\',q.1H.1b(\'7L\'),qv);q.1a.cy();q.M.hJ=q.1a.io(q.1H.1b(\'hK\'));q.M.hF=q.1a.cz(q.1H.1b(\'3o\'));q.M.hJ.on(\'2y\',$.1d(C(){q.M.1u($M)},q));q.M.hF.on(\'2y\',$.1d(C(){q.M.i0($M)},q));$(\'.I-V-3q\').1u();$(\'#I-M-1J\').2K($M.1c(\'80\'));if(!q.G.hE)$(\'.I-M-V-42\').3v();N{E $dP=$(\'#I-M-V\');$dP.1c(\'2k\',$M.1c(\'4t\'));if($V.12!==0){$dP.2K($V.1c(\'2k\'));if($V.1c(\'1Q\')==\'7K\')$(\'#I-M-V-7Z\').6j(\'a0\',1q)}}if(!q.G.hH)$(\'.I-M-4g-42\').3v();N{E hI=($M.1O(\'6N\')==\'R\'&&$M.1O(\'7f\')==\'5p\')?\'5u\':$M.1O(\'7f\');$(\'#I-M-5g\').2K(hI)}q.1a.2O();$(\'#I-M-1J\').2n()},i1:C($M){E hQ=$(\'#I-M-5g\').2K();E ag=\'\';E dD=\'\';E 8P=\'\';eJ(hQ){9G\'2c\':ag=\'2c\';8P=\'0 \'+q.G.8x+\' \'+q.G.8x+\' 0\';6n;9G\'4s\':ag=\'4s\';8P=\'0 0 \'+q.G.8x+\' \'+q.G.8x;6n;9G\'5u\':dD=\'R\';8P=\'bj\';6n}$M.1O({\'7f\':ag,6N:dD,4B:8P});$M.1c(\'3T\',$M.1c(\'1o\'))},i0:C($M){q.M.7W();q.25.1U();E $V=$M.2q(\'a\',q.$T[0]);E 1J=$(\'#I-M-1J\').2K().K(/(<([^>]+)>)/ig,"");$M.1c(\'80\',1J);q.M.i1($M);E V=$.3k($(\'#I-M-V\').2K());E V=V.K(/(<([^>]+)>)/ig,"");if(V!==\'\'){E 7D=\'((jT--)?[a-7t-9]+(-[a-7t-9]+)*\\\\.)+[a-z]{2,}\';E 3J=2a 2l(\'^(8s|8K|5o)://\'+7D,\'i\');E a1=2a 2l(\'^\'+7D,\'i\');if(V.3N(3J)==-1&&V.3N(a1)===0&&q.G.5c){V=q.G.5c+\'://\'+V}E 1Q=($(\'#I-M-V-7Z\').6j(\'a0\'))?1q:O;if($V.12===0){E a=$(\'<a 2k="\'+V+\'">\'+q.L.6q($M)+\'</a>\');if(1Q)a.1c(\'1Q\',\'7K\');$M.2t(a)}N{$V.1c(\'2k\',V);if(1Q){$V.1c(\'1Q\',\'7K\')}N{$V.1K(\'1Q\')}}}N if($V.12!==0){$V.2t(q.L.6q($M))}q.1a.4j();q.1R.au();q.1e.1S()},j1:C($M){if(q.G.dq){$M.on(\'qH\',$.1d(q.M.bn,q))}E 7N=$.1d(C(e){q.1R.M=$M;q.M.8f=q.M.hk($M);$(1l).on(\'6R.I-M-4J-3v.\'+q.2G,$.1d(q.M.7W,q));if(!q.G.dp)F;q.M.8f.on(\'6R.I 5H.I\',$.1d(C(e){q.M.i2(e,$M)},q))},q);$M.3h(\'6R.I\').on(\'6R.I\',$.1d(q.M.7W,q));$M.3h(\'2y.I 5H.I\').on(\'2y.I 5H.I\',7N)},i2:C(e,$M){e.2w();q.M.4k={x:e.hY,y:e.ah,el:$M,dC:$M.2J()/$M.3n(),h:$M.3n()};e=e.7T||e;if(e.8G){q.M.4k.x=e.8G[0].hY;q.M.4k.y=e.8G[0].ah}q.M.hX()},hX:C(){$(1l).on(\'qI.I-M-4J qT.I-M-4J\',$.1d(q.M.hT,q));$(1l).on(\'iZ.I-M-4J qU.I-M-4J\',$.1d(q.M.hW,q))},hT:C(e){e.2w();e=e.7T||e;E 3n=q.M.4k.h;if(e.8G)3n+=(e.8G[0].ah-q.M.4k.y);N 3n+=(e.ah-q.M.4k.y);E 2J=8d.hV(3n*q.M.4k.dC);if(3n<50||2J<88)F;E 3n=8d.hV(q.M.4k.el.2J()/q.M.4k.dC);q.M.4k.el.1c({2J:2J,3n:3n});q.M.4k.el.2J(2J);q.M.4k.el.3n(3n);q.1e.1S()},hW:C(){q.iw=O;$(1l).3h(\'.I-M-4J\');q.M.7W()},bn:C(e){if(q.$T.1h(\'#I-M-2Q\').12!==0){e.2w();F O}q.$T.on(\'57.I-M-hD-57\',$.1d(C(){3A($.1d(q.M.bs,q),1)},q))},bs:C(){q.M.hC();q.1R.au();q.$T.3h(\'57.I-M-hD-57\');q.1x.4r();q.1e.1S()},hC:C(){q.$T.1h(\'1L[1f-3o-2i]\').1B(C(){E $el=$(q);$el.1c(\'4t\',$el.1c(\'1f-3o-2i\'));$el.1K(\'1f-3o-2i\')})},7W:C(e){if(e&&$(e.1Q).2q(\'#I-M-2Q\',q.$T[0]).12!==0)F;if(e&&e.1Q.1p==\'aA\'){E $M=$(e.1Q);$M.1c(\'1f-3o-2i\',$M.1c(\'4t\'))}E 3G=q.$T.1h(\'#I-M-2Q\');if(3G.12===0)F;$(\'#I-M-5l\').1u();$(\'#I-M-8f\').1u();3G.1h(\'1L\').1O({63:3G[0].1o.63,af:3G[0].1o.af,ae:3G[0].1o.ae,ab:3G[0].1o.ab});3G.1O(\'4B\',\'\');3G.1h(\'1L\').1O(\'hg\',\'\');3G.2t(C(){F $(q).26()});$(1l).3h(\'6R.I-M-4J-3v.\'+q.2G);if(1s q.M.4k!==\'1y\'){q.M.4k.el.1c(\'3T\',q.M.4k.el.1c(\'1o\'))}q.1e.1S()},hd:C($M,3G){if(q.G.dp&&!q.L.6M()){E 8a=$(\'<1j id="I-M-8f" 1f-I="3H"></1j>\');if(!q.L.7b()){8a.1O({2J:\'hi\',3n:\'hi\'})}8a.1c(\'5d\',O);3G.1F(8a);3G.1F($M);F 8a}N{3G.1F($M);F O}},hk:C($M){E 3G=$(\'<1j id="I-M-2Q" 1f-I="3H">\');3G.1O(\'7f\',$M.1O(\'7f\')).1c(\'5d\',O);if($M[0].1o.4B!=\'bj\'){3G.1O({63:$M[0].1o.63,af:$M[0].1o.af,ae:$M[0].1o.ae,ab:$M[0].1o.ab});$M.1O(\'4B\',\'\')}N{3G.1O({\'6N\':\'R\',\'4B\':\'bj\'})}$M.1O(\'hg\',\'.5\').3F(3G);if(q.G.dq){q.M.5l=$(\'<1j id="I-M-5l" 1f-I="3H">\'+q.1H.1b(\'7L\')+\'</1j>\');q.M.5l.1c(\'5d\',O);q.M.5l.on(\'2y\',$.1d(C(){q.M.hc($M)},q));3G.1F(q.M.5l);E hb=q.M.5l.7P();q.M.5l.1O(\'4B-2c\',\'-\'+hb/2+\'px\')}F q.M.hd($M,3G)},1u:C(M){E $M=$(M);E $V=$M.2q(\'a\',q.$T[0]);E $6K=$M.2q(\'6K\',q.$T[0]);E $1r=$M.1r();if($(\'#I-M-2Q\').12!==0){$1r=$(\'#I-M-2Q\').1r()}E $1N;if($6K.12!==0){$1N=$6K.1N();$6K.1u()}N if($V.12!==0){$1r=$V.1r();$V.1u()}N{$M.1u()}$(\'#I-M-2Q\').1u();if($6K.12!==0){q.1V.2W($1N)}N{q.1V.2W($1r)}q.1X.2u(\'dw\',$M[0].4t,$M);q.1a.4j();q.1e.1S()},1Y:C(2P,4Y,e){if(1s 2P.6U!=\'1y\'){q.1a.4j();q.J.3d();q.1X.2u(\'qs\',2P);F}E $1L;if(1s 2P==\'6Z\'){$1L=$(2P).1c(\'1f-I-8m-M\',\'1q\')}N{$1L=$(\'<1L>\');$1L.1c(\'4t\',2P.9b).1c(\'1f-I-8m-M\',\'1q\')}E Q=$1L;E do=q.L.4S(\'P\');if(do){Q=$(\'<29 />\').1F($1L)}if(4Y){q.J.8p();E 2r=q.J.6Q();q.1Y.dA(e,2r)}N{q.1a.4j()}q.J.3d();q.25.1U();q.1Y.B(q.L.6q(Q),O);E $M=q.$T.1h(\'1L[1f-I-8m-M=1q]\').1K(\'1f-I-8m-M\');if(do){$M.1r().26().3Y().5Z(\'<p />\')}N if(q.G.1M){if(!q.L.3z(q.1e.1b())){$M.a6(\'<br>\')}$M.3F(\'<br>\')}if(1s 2P==\'6Z\')F;q.1X.2u(\'75\',$M,2P)}}},3y:C(){F{bo:C(){if(!q.L.1P(\'2E\'))q.$T.2n();q.25.1U();q.J.3o();E R=q.J.4a();if(R&&R.1p==\'5v\'){q.3y.ho()}N if(R===O&&q.G.1M){q.3y.hx()}N{q.3y.hy()}q.J.3d();q.1e.1S()},ho:C(){1l.3Z(\'3y\');q.3y.aO();q.1x.ap();q.1x.4r()},hy:C(){$.1B(q.J.3X(),$.1d(C(i,4V){if(4V.1p===\'6F\'||4V.1p===\'dn\')F;E $el=q.L.bh(4V);E 2c=q.L.dr($el.1O(\'4B-2c\'))+q.G.ad;$el.1O(\'4B-2c\',2c+\'px\')},q))},hx:C(){E 4M=q.J.5Z(\'1i\');$(4M).1c(\'1f-8b\',\'I\');$(4M).1O(\'4B-2c\',q.G.ad+\'px\')},95:C(){q.25.1U();q.J.3o();E R=q.J.4a();if(R&&R.1p==\'5v\'){q.3y.hz()}N{q.3y.hA()}q.J.3d();q.1e.1S()},hz:C(){1l.3Z(\'7p\');E 1z=q.J.3B();E $2x=$(1z).2q(\'li\',q.$T[0]);q.3y.aO();if(!q.G.1M&&$2x.12===0){1l.3Z(\'9S\',O,\'p\');q.$T.1h(\'3p, ol, 29, p\').1B($.1d(q.L.4f,q))}q.1x.4r()},hA:C(){$.1B(q.J.3X(),$.1d(C(i,4V){E $el=q.L.bh(4V);E 2c=q.L.dr($el.1O(\'4B-2c\'))-q.G.ad;if(2c<=0){if(q.G.1M&&1s($el.1f(\'8b\'))!==\'1y\'){$el.2t($el.B()+\'<br />\')}N{$el.1O(\'4B-2c\',\'\');q.L.5r($el,\'1o\')}}N{$el.1O(\'4B-2c\',2c+\'px\')}},q))},aO:C(){E R=q.J.4a();if(q.14.53&&R&&R.1p==\'5v\'&&q.L.3z($(R).1g())){E $R=$(R);$R.1h(\'1j\').6h(\'.I-J-2r\').26().3Y();$R.1F(\'<br>\')}}}},28:C(){F{3a:C(1w){E 1m,1E;if(1s q.3a[1w].1o!=\'1y\')1m=\'1o\';N if(1s q.3a[1w][\'1G\']!=\'1y\')1m=\'1G\';if(1m)1E=q.3a[1w][1m];q.28.30(q.3a[1w].Y,1m,1E)},30:C(Y,1m,1E){E 1z=q.J.3B();if(1z&&1z.1p===\'qc\')F;q.8h=1q;if(q.L.4S(\'8o\')||q.L.h8())F;E 2d=[\'b\',\'4n\',\'i\',\'4m\',\'5x\',\'eM\',\'5Y\',\'hv\',\'hq\'];E hu=[\'5i\',\'5i\',\'em\',\'em\',\'u\',\'4h\',\'4h\',\'7Q\',\'7l\'];2B(E i=0;i<2d.12;i++){if(Y==2d[i])Y=hu[i]}if(q.G.4z){if($.3t(Y,q.G.4z)==-1)F}N{if($.3t(Y,q.G.4c)!==-1)F}q.28.1m=1m||O;q.28.1E=1E||O;q.25.1U();if(!q.L.1P(\'2E\')){q.$T.2n()}q.J.1b();if(q.14.53){q.28.i3(Y)}N{q.28.fS(Y)}},i3:C(Y){E 1z=q.J.3B();E $1r=$(1z).2q(Y+\'[1f-I-Y=\'+Y+\']\',q.$T[0]);if($1r.12!==0&&(q.28.1m!=\'1o\'&&$1r[0].1p!=\'6w\')){if(q.L.3z($1r.1g())){q.1V.54($1r[0]);$1r.1u();q.1e.1S()}N if(q.L.6T($1r)){q.1V.54($1r[0])}F}E Q=$(\'<\'+Y+\'>\').1c(\'1f-3H\',\'I\').1c(\'1f-I-Y\',Y);Q.B(q.G.6o);Q=q.28.dj(Q);E Q=q.1Y.Q(Q);q.1V.3P(Q);q.1e.1S()},fS:C(Y){q.28.eF(Y);q.J.3o();1l.3Z(\'eM\');q.$T.1h(\'7c\').1B($.1d(C(i,s){E $el=$(s);q.28.eG($el,Y);E $1j;if(q.28.1m){$1j=$(\'<1j>\').1c(\'1f-I-Y\',Y).1c(\'1f-3H\',\'I\');$1j=q.28.dj($1j)}N{$1j=$(\'<\'+Y+\'>\').1c(\'1f-I-Y\',Y).1c(\'1f-3H\',\'I\')}$el.2t($1j.B($el.26()));E $1r=$1j.1r();if($1r&&$1r[0].1p===\'U\'){$1j.1r().2t($1j)}if(Y==\'1j\'){if($1r&&$1r[0].1p===\'6w\'&&q.28.1m===\'1o\'){E 2C=q.28.1E.4o(\';\');2B(E z=0;z<2C.12;z++){if(2C[z]===\'\')F;E 1o=2C[z].4o(\':\');$1r.1O(1o[0],\'\');if(q.L.5r($1r,\'1o\')){$1r.2t($1r.26())}}}}},q));if(Y!=\'1j\'){q.$T.1h(q.G.4N.3c(\', \')).1B($.1d(C(i,s){E $el=$(s);if(s.1p===\'U\'&&s.4u.12===0){$el.2t($el.26());F}E ai=$el.1O(\'1g-7a\');if(ai===\'3K-eP\'){$el.1O(\'1g-7a\',\'\');q.L.5r($el,\'1o\')}},q))}if(Y!=\'4h\'){E eK=q;q.$T.1h(\'28\').1B(C(i,s){eK.L.4I(s,\'4h\')})}q.J.3d();q.1e.1S()},eG:C($el,Y){E 3u=q;$el.3O(Y).1B(C(){E $4w=$(q);if(!$4w.3i(\'I-J-2r\')){if(3u.28.1m==\'1o\'){E 2C=3u.28.1E.4o(\';\');2B(E z=0;z<2C.12;z++){if(2C[z]===\'\')F;E 1o=2C[z].4o(\':\');$4w.1O(1o[0],\'\');if(3u.L.5r($4w,\'1o\')){$4w.2t($4w.26())}}}N{$4w.26().3Y()}}})},eF:C(Y){q.J.3o();E 1h=\'\';if(q.28.1m==\'1G\')1h=\'[1f-I-1G=\'+q.28.1E+\']\';N if(q.28.1m==\'1o\'){1h=\'[1f-I-1o="\'+q.28.1E+\'"]\'}E 3u=q;if(Y!=\'4h\'){q.$T.1h(\'4h\').1B(C(i,s){3u.L.4I(s,\'28\')})}if(Y!=\'1j\'){q.$T.1h(Y).1B(C(){E $el=$(q);$el.2t($(\'<7c />\').B($el.26()))})}q.$T.1h(\'[1f-I-Y="\'+Y+\'"]\'+1h).1B(C(){if(1h===\'\'&&Y==\'1j\'&&q.1p.3e()==Y)F;E $el=$(q);$el.2t($(\'<7c />\').B($el.26()))});q.J.3d()},dj:C(Q){eJ(q.28.1m){9G\'1G\':if(Q.3i(q.28.1E)){Q.2S(q.28.1E);Q.1K(\'1f-I-1G\')}N{Q.2f(q.28.1E);Q.1c(\'1f-I-1G\',q.28.1E)}6n;9G\'1o\':Q[0].1o.q4=q.28.1E;Q.1c(\'1f-I-1o\',q.28.1E);6n}F Q},qd:C(){q.25.1U();E 1z=q.J.3B();E 23=q.J.e8();q.J.3o();if(1z&&1z.1p===\'6w\'){E $s=$(1z);$s.1K(\'1o\');if($s[0].4u.12===0){$s.2t($s.26())}}$.1B(23,$.1d(C(i,s){E $s=$(s);if($.3t(s.1p.3e(),q.G.4N)!=-1&&!$s.3i(\'I-J-2r\')){$s.1K(\'1o\');if($s[0].4u.12===0){$s.2t($s.26())}}},q));q.J.3d();q.1e.1S()},qe:C(1w){q.25.1U();E 1r=q.J.67();E 23=q.J.e8();q.J.3o();if(1r&&1r.1p===\'6w\'){E $s=$(1r);$s.1O(1w,\'\');q.L.5r($s,\'1o\');if($s[0].4u.12===0){$s.2t($s.26())}}$.1B(23,$.1d(C(i,s){E $s=$(s);if($.3t(s.1p.3e(),q.G.4N)!=-1&&!$s.3i(\'I-J-2r\')){$s.1O(1w,\'\');q.L.5r($s,\'1o\');if($s[0].4u.12===0){$s.2t($s.26())}}},q));q.J.3d();q.1e.1S()},dm:C(){q.25.1U();E 1z=q.J.3B();q.J.3o();1l.3Z(\'dm\');if(1z&&1z.1p===\'6w\'){$(1z).2t($(1z).26())}$.1B(q.J.6I(),$.1d(C(i,s){E $s=$(s);if($.3t(s.1p.3e(),q.G.4N)!=-1&&!$s.3i(\'I-J-2r\')){$s.2t($s.26())}},q));q.J.3d();q.1e.1S()},7O:C(3E){q.28.30(\'1j\',\'1G\',3E)},qn:C(1E){q.28.30(\'1j\',\'1o\',1E)}}},1Y:C(){F{1U:C(B,1x){q.3f.1u();B=q.1x.7R(B);if(1s 1x==\'1y\'){B=q.1x.8y(B,O)}q.$T.B(B);q.J.1u();q.2n.3P();q.1x.ap();q.1e.1S();q.1R.2R();if(1s 1x==\'1y\'){3A($.1d(q.1x.4r,q),10)}},1g:C(1g){q.3f.1u();1g=1g.4y();1g=$.3k(1g);1g=q.1x.aj(1g,O);q.$T.2n();if(q.L.1P(\'2E\')){q.1Y.ds(1g)}N{q.J.1b();q.14.55();E el=1l.3w("1i");el.3x=1g;E 4L=1l.9M(),Q,5K;56((Q=el.9N)){5K=4L.81(Q)}q.14.3L(4L);if(5K){E 14=q.14.7S();14.9I(5K);14.43(1q);q.2T.8T();q.2T.4l(14)}}q.1e.1S();q.1x.4r()},fc:C(B){q.1Y.B(B,O)},B:C(B,1x){q.3f.1u();if(1s 1x==\'1y\')1x=1q;q.$T.2n();B=q.1x.7R(B);if(1x){B=q.1x.8y(B)}if(q.L.1P(\'2E\')){q.1Y.ds(B)}N{if(q.1x.9D)q.1Y.eV(B);N 1l.3Z(\'qr\',O,B);q.1Y.eX()}q.1x.ap();if(!q.G.1M){q.$T.1h(\'p\').1B($.1d(q.L.4f,q))}q.1e.1S();q.1R.2R();if(1x){q.1x.4r()}},eX:C(){if(!q.L.1P(\'4b\'))F;E $1N=$(q.J.4a()).1N();if($1N.12>0&&$1N[0].1p==\'P\'&&$1N.B()===\'\'){$1N.1u()}},ds:C(B){if(q.L.gj()){E 1r=q.L.4S(\'P\');E $B=$(\'<1i>\').1F(B);E eU=$B.26().is(\'p, :87, dl, 3p, ol, 1i, 3W, 2Y, 29, 2F, du, 49, 87, c8, eE, eS\');if(1r&&eU)q.1Y.ey(1r,B);N q.1Y.ew(B);F}1l.J.92().gw(B)},eV:C(B){B=q.1x.7R(B);q.J.1b();q.14.55();E el=1l.3w(\'1i\');el.3x=B;E 4L=1l.9M(),Q,5K;56((Q=el.9N)){5K=4L.81(Q)}q.14.3L(4L);q.14.43(1q);q.1V.54(5K)},Q:C(Q,55){Q=Q[0]||Q;E B=q.L.6q(Q);B=q.1x.7R(B);if(B.1T(/</g)!==4e){Q=$(B)[0]}q.J.1b();if(55!==O){q.14.55()}q.14.3L(Q);q.14.43(O);q.J.4l();F Q},qf:C(Q,x,y){Q=Q[0]||Q;q.J.1b();E 14;if(1l.aq){E 3s=1l.aq(x,y);q.14.2W(3s.er,3s.2I);q.14.43(1q);q.14.3L(Q)}N if(1l.ao){14=1l.ao(x,y);14.3L(Q)}N if(1s 1l.31.an!="1y"){14=1l.31.an();14.ak(x,y);E 7e=14.eo();7e.ak(x,y);14.eA("ez",7e);14.7z()}},dA:C(e,Q){Q=Q[0]||Q;E 14;E x=e.qi,y=e.qk;if(1l.aq){E 3s=1l.aq(x,y);E 2T=1l.4D();14=2T.6l(0);14.2W(3s.er,3s.2I);14.43(1q);14.3L(Q)}N if(1l.ao){14=1l.ao(x,y);14.3L(Q)}N if(1s 1l.31.an!="1y"){14=1l.31.an();14.ak(x,y);E 7e=14.eo();7e.ak(x,y);14.eA("ez",7e);14.7z()}},ey:C(1r,B){E Q=1l.3w(\'1j\');Q.3E=\'I-ie-5C\';q.1Y.Q(Q);E 7m=$(1r).B();7m=\'<p>\'+7m.K(/<1j 1G="I-ie-5C"><\\/1j>/gi,\'</p>\'+B+\'<p>\')+\'</p>\';7m=7m.K(/<p><\\/p>/gi,\'\');$(1r).2t(7m)},ew:C(B){q.J.1b();q.14.55();E el=1l.3w("1i");el.3x=B;E 4L=1l.9M(),Q,5K;56((Q=el.9N)){5K=4L.81(Q)}q.14.3L(4L);q.14.43(O);q.J.4l()}}},1D:C(){F{3Q:C(e){if(q.7B)F;E 1k=e.7U;E 4W=(1k>=37&&1k<=40);q.1D.48=e.9u||e.6J;q.1D.1z=q.J.3B();q.1D.1r=q.J.67();q.1D.R=q.J.4a();q.1D.2F=q.L.bB(q.1D.1z,\'2F\');q.1D.29=q.L.bB(q.1D.1z,\'29\');q.1D.7Y=q.L.bB(q.1D.1z,\'7Y\');q.6m.3Q(e,1k);if(q.L.7b()){q.1D.fN(4W,1k);q.1D.g6(e,1k)}q.1D.fV(4W);q.1D.fY(e,1k);E eC=q.1X.2u(\'1D\',e);if(eC===O){e.2w();F O}if(q.G.al&&(q.L.1P(\'2E\')||q.L.1P(\'4b\'))&&(1k===q.3j.dW||1k===q.3j.eB)){E dy=O;E $3W=O;if(q.1D.R&&q.1D.R.1p===\'6F\'){$3W=$(q.1D.R).2q(\'3W\',q.$T[0])}if($3W&&$3W.1h(\'2Y\').2Z()[0]===q.1D.R){dy=1q}if(q.L.6T()&&dy){E Q=$(q.G.5S);$3W.3F(Q);q.1V.2W(Q)}}if(q.G.al&&1k===q.3j.dW){q.1D.fH()}if(!q.G.al&&1k===q.3j.70){e.2w();if(!q.14.53)q.14.55();F}if(1k==q.3j.70&&!e.6s&&!e.9u&&!e.6J){E fQ=q.1X.2u(\'nz\',e);if(fQ===O){e.2w();F O}if(q.1D.29&&q.1D.fk(e)===1q){F O}E 1z,$1N;if(q.1D.2F){F q.1D.fE(e)}N if(q.1D.29||q.1D.7Y){1z=q.J.3B();$1N=$(1z).1N();if($1N.12!==0&&$1N[0].1p==\'58\'){F q.1D.6x(e)}N if(q.L.6T()&&(1z&&1z!=\'6w\')){F q.1D.9x(e)}N{F q.1D.6x(e)}}N if(q.G.1M&&!q.1D.R){1z=q.J.3B();$1N=$(q.1D.1z).1N();if($1N.12!==0&&$1N[0].1p==\'58\'){F q.1D.6x(e)}N if(1z!==O&&$(1z).3i(\'I-7s-3g\')){q.1V.54(1z);$(1z).26().3Y();F q.1D.9x(e)}N{if(q.L.dN()){F q.1D.9x(e)}N if($1N.12===0&&1z===O&&1s $1N.ny!=\'1y\'){F q.1D.6x(e)}F q.1D.6x(e)}}N if(q.G.1M&&q.1D.R){3A($.1d(q.1D.fs,q),1)}N if(!q.G.1M&&q.1D.R){3A($.1d(q.1D.fm,q),1);if(q.1D.R.1p===\'5v\'){1z=q.J.3B();E $1r=$(1z).2q(\'li\',q.$T[0]);E $2e=$1r.2q(\'3p,ol\',q.$T[0]);if($1r.12!==0&&q.L.3z($1r.B())&&$2e.1N().12===0&&q.L.3z($2e.1h("li").2Z().B())){$2e.1h("li").2Z().1u();E Q=$(q.G.5S);$2e.3F(Q);q.1V.2W(Q);F O}}}N if(!q.G.1M&&!q.1D.R){F q.1D.fj(e)}}if(1k===q.3j.70&&(e.9u||e.6s)){F q.1D.i4(e)}if(1k===q.3j.dx||e.6J&&1k===ek||e.6J&&1k===e5){F q.1D.fG(e,1k)}if(1k===q.3j.84||1k===q.3j.8Q){E 23=q.J.6I();if(23){E 2p=23.12;E 2Z;2B(E i=0;i<2p;i++){E 3O=$(23[i]).3O(\'1L\');if(3O.12!==0){E 3u=q;$.1B(3O,C(z,s){E $s=$(s);if($s.1O(\'7f\')!=\'5p\')F;3u.1X.2u(\'dw\',s.4t,$s);2Z=s})}N if(23[i].1p==\'aA\'){if(2Z!=23[i]){q.1X.2u(\'dw\',23[i].4t,$(23[i]));2Z=23[i]}}}}}if(1k===q.3j.84){E R=q.J.4a();E ff=($(R).1O(\'4B-2c\')!==\'nC\');if(R&&ff&&q.14.53&&q.L.gp()){q.3y.95();e.2w();F}if(q.L.1P(\'4b\')){E 4G=q.J.iG();E am=$(4G).4G()[0];if(4G&&4G.1p===\'fT\')$(4G).1u();if(am&&am.1p===\'fT\')$(am).1u()}q.1D.hp();q.1D.ij(e)}q.1e.1S()},fN:C(4W,1k){if(!4W&&(q.1X.7g()==\'2y\'||q.1X.7g()==\'4W\')){q.1X.9K(O);if(q.1D.fJ(1k)){q.25.1U()}}},fJ:C(1k){E k=q.3j;E 4X=[k.84,k.8Q,k.70,k.a7,k.b2,k.dx,k.fK,k.fL,k.fM,k.fU];F($.3t(1k,4X)==-1)?1q:O},fV:C(4W){if(!4W)F;if((q.1X.7g()==\'2y\'||q.1X.7g()==\'4W\')){q.1X.9K(O);F}q.1X.9K(\'4W\')},g6:C(e,1k){if(q.1D.48&&1k===90&&!e.6s&&!e.g1&&q.G.25.12){e.2w();q.25.9l();F}N if(q.1D.48&&1k===90&&e.6s&&!e.g1&&q.G.9k.12!==0){e.2w();q.25.a9();F}N if(!q.1D.48){if(1k==q.3j.84||1k==q.3j.8Q||(1k==q.3j.70&&!e.9u&&!e.6s)||1k==q.3j.a7){q.25.1U()}}},fY:C(e,1k){if(q.1D.48&&1k===65){q.L.gW()}N if(1k!=q.3j.g0&&!q.1D.48){q.L.8U()}},fH:C(){E 2d=[q.1D.29,q.1D.2F,q.1D.7Y];2B(E i=0;i<2d.12;i++){if(2d[i]){q.1D.fC(2d[i]);F O}}},i4:C(e){q.25.1U();if(q.L.6T()){F q.1D.9x(e)}F q.1D.6x(e)},fG:C(e,1k){if(!q.G.fp)F 1q;if(q.L.3z(q.1e.1b())&&q.G.9Y===O)F 1q;e.2w();E Q;if(q.1D.2F&&!e.6s){Q=(q.G.6v)?1l.8W(9F(q.G.6v+1).3c(\'\\9Z\')):1l.8W(\'\\t\');q.1Y.Q(Q);q.1e.1S()}N if(q.G.9Y!==O){Q=1l.8W(9F(q.G.9Y+1).3c(\'\\9Z\'));q.1Y.Q(Q);q.1e.1S()}N{if(e.6J&&1k===e5)q.3y.95();N if(e.6J&&1k===ek)q.3y.bo();N if(!e.6s)q.3y.bo();N q.3y.95()}F O},fs:C(){E 4C=q.J.4a();E 9X=4C.3x.K(/<br\\s?\\/?>/gi,\'\');if((4C.1p===\'89\'||4C.1p===\'P\')&&9X===\'\'&&!$(4C).3i(\'I-T\')){E br=1l.3w(\'br\');$(4C).2t(br);q.1V.bT(br);q.1e.1S();F O}},fm:C(){E 4C=q.J.4a();E 9X=4C.3x.K(/<br\\s?\\/?>/gi,\'\');if(4C.1p===\'89\'&&q.L.3z(9X)&&!$(4C).3i(\'I-T\')){E p=1l.3w(\'p\');p.3x=q.G.6o;$(4C).2t(p);q.1V.2W(p);q.1e.1S();F O}N if(q.G.fh&&4C.1p==\'P\'){$(4C).1K(\'1G\').1K(\'1o\')}},fj:C(e){e.2w();q.J.1b();E p=1l.3w(\'p\');p.3x=q.G.6o;q.14.55();q.14.3L(p);q.1V.2W(p);q.1e.1S();F O},fk:C(e){if(!q.L.6T())F;E 5q=$.3k($(q.1D.R).B());if(5q.3N(/(<br\\s?\\/?>){2}$/i)!=-1){e.2w();if(q.G.1M){E br=1l.3w(\'br\');$(q.1D.29).3F(br);q.1V.bT(br);$(q.1D.R).B(5q.K(/<br\\s?\\/?>$/i,\'\'))}N{E Q=$(q.G.5S);$(q.1D.29).3F(Q);q.1V.2W(Q)}F 1q}F},fC:C(2j){if(!q.L.6T())F;q.25.1U();if(q.G.1M){E 26=$(\'<1i>\').1F($.3k(q.$T.B())).26();E 2Z=26.2Z()[0];if(2Z.1p==\'6w\'&&2Z.3x===\'\'){2Z=26.4G()[0]}if(q.L.6q(2Z)!=q.L.6q(2j))F;E br=1l.3w(\'br\');$(2j).3F(br);q.1V.54(br)}N{if(q.$T.26().2Z()[0]!==2j)F;E Q=$(q.G.5S);$(2j).3F(Q);q.1V.2W(Q)}},fE:C(e){e.2w();E Q=1l.8W(\'\\n\');q.J.1b();q.14.55();q.14.3L(Q);q.1V.54(Q);q.1e.1S();F O},6x:C(e){F q.1D.bR(e)},9x:C(e){F q.1D.bR(e,1q)},bR:C(e,fv){e.fw();q.J.1b();E 5t=1l.3w(\'br\');if(q.L.1P(\'2E\')){q.14.43(O);q.14.3P(q.14.bQ,q.14.bO)}N{q.14.55()}q.14.3L(5t);E $9W=$(5t).1r("a");if($9W.12>0){$9W.1h(5t).1u();$9W.3F(5t)}if(fv===1q){E $1N=$(5t).1N();if($1N.12!==0&&$1N[0].1p===\'58\'&&q.L.dN()){q.1V.54(5t);q.1e.1S();F O}E bP=1l.3w(\'br\');q.14.3L(bP);q.1V.54(bP)}N{if(q.L.1P(\'2E\')){E 3g=1l.3w(\'1j\');3g.3x=\'	T;\';$(5t).3F(3g);q.1V.54(3g);$(3g).1u()}N{E 14=1l.92();14.9I(5t);14.43(1q);E J=3l.4D();J.8T();J.4l(14)}}q.1e.1S();F O},hp:C(){E $1z=$(q.1D.1z);if($1z.1g().3N(/^\\6g$/g)===0){$1z.1u()}},ij:C(e){E $1z=$(q.1D.1z);E $1r=$(q.1D.1r);E 2Y=$1z.2q(\'2Y\',q.$T[0]);if(2Y.12!==0&&$1z.2q(\'li\',q.$T[0])&&$1r.3O(\'li\').12===1){if(!q.L.3z($1z.1g()))F;e.2w();$1z.1u();$1r.1u();q.1V.2W(2Y)}}}},2s:C(){F{3Q:C(e){if(q.7B)F;E 1k=e.7U;q.2s.1z=q.J.3B();q.2s.1r=q.J.67();E $1r=q.L.4p($(q.2s.1r).1r());E kA=q.1X.2u(\'2s\',e);if(kA===O){e.2w();F O}if(!q.G.1M&&q.2s.1z.a8==3&&q.2s.1z.12<=1&&(q.2s.1r===O||q.2s.1r.1p==\'e6\')){q.2s.9U()}if(!q.G.1M&&q.L.4p(q.2s.1z)&&q.2s.1z.1p===\'89\'){q.2s.9U(O)}if(!q.G.1M&&$(q.2s.1r).3i(\'I-7s-3g\')&&($1r===O||$1r[0].1p==\'e6\')){$(q.2s.1r).26().3Y();q.2s.9U()}if(q.2z.aD()&&q.2z.kB(1k))q.2z.30();if(1k===q.3j.8Q||1k===q.3j.84){if(q.L.1P(\'4b\')){E 2Y=$(q.1D.1z).2q(\'2Y\',q.$T[0]);if(2Y.9B()!==0&&2Y.1g()!==\'\'){e.2w();F O}}q.1x.4r();if(q.1R.M){e.2w();q.M.7W();q.25.1U();q.M.1u(q.1R.M);q.1R.M=O;F O}q.$T.1h(\'p\').1B($.1d(C(i,s){q.L.4f(i,$(s).B())},q));if(q.G.1M&&q.2s.1z&&q.2s.1z.1p==\'89\'&&q.L.3z(q.2s.1z.3x)){$(q.2s.1z).3F(q.J.5a());q.J.3d();$(q.2s.1z).1u()}F q.2s.kN(e)}},9U:C(8O){E $1z=$(q.2s.1z);E Q;if(8O===O){Q=$(\'<p>\').1F($1z.B())}N{Q=$(\'<p>\').1F($1z.8O())}$1z.2t(Q);E 1N=$(Q).1N();if(1s(1N[0])!==\'1y\'&&1N[0].1p==\'58\'){1N.1u()}q.1V.3P(Q)},kN:C(e){E B=$.3k(q.$T.B());if(!q.L.3z(B))F;e.2w();if(q.G.1M){q.$T.B(q.J.5a());q.J.3d()}N{q.$T.B(q.G.5S);q.2n.2W()}q.1e.1S();F O}}},1H:C(){F{2R:C(){q.G.bU=q.G.kn[q.G.1H]},1b:C(1w){F(1s q.G.bU[1w]!=\'1y\')?q.G.bU[1w]:\'\'}}},3K:C(){F{1Y:C(){q.25.1U();E 1Z=q.J.3X();if(1Z[0]!==O&&q.3K.jZ(1Z)){if(!q.L.1P(\'2E\'))q.$T.2n();F}if(q.L.1P(\'2E\')){q.3K.aR()}N{q.3K.kc()}},jZ:C(1Z){E 9y=[\'li\',\'2Y\',\'5P\',\'29\',\'7Y\',\'2F\',\'dl\',\'dt\',\'dd\'];E 3I=1Z[0].1p.3e();E 2Z=q.J.kJ();2Z=(1s 2Z==\'1y\')?3I:2Z.1p.3e();E bN=$.3t(3I,9y)!=-1;E kl=$.3t(2Z,9y)!=-1;if((bN&&kl)||bN){F 1q}},aR:C(){q.L.8z();q.25.1U();q.1Y.Q(1l.3w(\'hr\'));q.L.bk();q.1e.1S()},kc:C(){q.25.1U();E bV=\'<p id="I-1Y-3K"><br /></p>\';if(q.G.1M)bV=\'<br id="I-1Y-3K">\';1l.3Z(\'na\',O,\'<hr>\'+bV);q.3K.k9();q.1e.1S()},k9:C(){E Q=q.$T.1h(\'#I-1Y-3K\');E 1N=$(Q).1N()[0];E 1Q=1N;if(q.L.1P(\'4b\')&&1N&&1N.3x===\'\'){1Q=$(1N).1N()[0];$(1N).1u()}if(1Q){Q.1u();if(!q.G.1M){q.$T.2n();q.3K.2W(1Q)}}N{Q.1K(\'id\');q.3K.2W(Q[0])}},2W:C(Q){if(1s Q===\'1y\')F;E jQ=1l.8W(\'\\6g\');q.J.1b();q.14.2W(Q,0);q.14.3L(jQ);q.14.43(1q);q.J.4l()}}},V:C(){F{2O:C(e){if(1s e!=\'1y\'&&e.2w)e.2w();if(!q.1R.c7(\'a\')){q.1a.2R(\'V\',q.1H.1b(\'ba\'),jS)}N{q.1a.2R(\'V\',q.1H.1b(\'ca\'),jS)}q.1a.cy();E kE=!q.1R.c7(\'a\')?q.1H.1b(\'1Y\'):q.1H.1b(\'7L\');q.V.kL=q.1a.cz(kE);q.J.1b();q.V.kG();q.V.kg();if(q.V.1Q==\'7K\')$(\'#I-V-7Z\').6j(\'a0\',1q);q.V.$9n=$(\'#I-V-2i\');q.V.$bZ=$(\'#I-V-2i-1g\');q.V.$bZ.2K(q.V.1g);q.V.$9n.2K(q.V.2i);q.V.kL.on(\'2y\',$.1d(q.V.1Y,q));$(\'.I-V-3q\').1u();q.J.3o();q.1a.2O();q.V.$9n.2n()},kg:C(){E jV=3u.jU.2k.K(/\\/$/i,\'\');if(1s q.V.2i!=="1y"){q.V.2i=q.V.2i.K(jV,\'\');q.V.2i=q.V.2i.K(/^\\/#/,\'#\');q.V.2i=q.V.2i.K(\'bY:\',\'\');if(!q.G.5c){E 3J=2a 2l(\'^(8s|8K|5o)://\'+3u.jU.n4,\'i\');q.V.2i=q.V.2i.K(3J,\'\')}}},kG:C(){q.V.$Q=O;E $el=$(q.J.3B()).2q(\'a\',q.$T[0]);if($el.12!==0&&$el[0].1p===\'A\'){q.V.$Q=$el;q.V.2i=$el.1c(\'2k\');q.V.1g=$el.1g();q.V.1Q=$el.1c(\'1Q\')}N{q.V.1g=q.2T.4y();q.V.2i=\'\';q.V.1Q=\'\'}},1Y:C(){q.3f.1u();E 1Q=\'\';E V=q.V.$9n.2K();E 1g=q.V.$bZ.2K().K(/(<([^>]+)>)/ig,"");if($.3k(V)===\'\'){q.V.$9n.2f(\'I-3D-6U\').on(\'2s\',C(){$(q).2S(\'I-3D-6U\');$(q).3h(\'2s\')});F}if(V.3N(\'@\')!=-1&&/(8s|8K|5o):\\/\\//i.bE(V)===O){V=\'bY:\'+V}N if(V.3N(\'#\')!==0){if($(\'#I-V-7Z\').6j(\'a0\')){1Q=\'7K\'}E 7D=\'((jT--)?[a-7t-9]+(-[a-7t-9]+)*\\\\.)+[a-z]{2,}\';E 3J=2a 2l(\'^(8s|8K|5o)://\'+7D,\'i\');E a1=2a 2l(\'^\'+7D,\'i\');E km=2a 2l(\'\\.(B|nh)$\',\'i\');if(V.3N(3J)==-1&&V.3N(km)==-1&&V.3N(a1)===0&&q.G.5c){V=q.G.5c+\'://\'+V}}q.V.1U(1g,V,1Q);q.1a.4j()},1U:C(1g,V,1Q){1g=$.3k(1g.K(/<|>/g,\'\'));q.J.3d();E 1Z=q.J.3X();if(1g===\'\'&&V===\'\')F;if(1g===\'\'&&V!==\'\')1g=V;if(q.V.$Q){q.25.1U();E $V=q.V.$Q,$el=$V.3O();if($el.12>0){56($el.12){$el=$el.3O()}$el=$el.2h()}N{$el=$V}$V.1c(\'2k\',V);$el.1g(1g);if(1Q!==\'\'){$V.1c(\'1Q\',1Q)}N{$V.1K(\'1Q\')}q.J.9g($V);q.1e.1S()}N{if(q.L.1P(\'4b\')&&q.V.1g===\'\'){E $a=$(\'<a />\').1c(\'2k\',V).1g(1g);if(1Q!==\'\')$a.1c(\'1Q\',1Q);q.1Y.Q($a);q.J.9g($a)}N{E $a;if(q.L.1P(\'2E\')){$a=$(\'<a 2k="\'+V+\'">\').1g(1g);if(1Q!==\'\')$a.1c(\'1Q\',1Q);$a=$(q.1Y.Q($a));if(q.J.e1().1T(/\\s$/)){$a.3F(" ")}q.J.9g($a)}N{1l.3Z(\'nt\',O,V);$a=$(q.J.3B()).2q(\'a\',q.$T[0]);if(q.L.1P(\'4b\')){$a=$(\'a[k3=""]\')}if(1Q!==\'\')$a.1c(\'1Q\',1Q);$a.1K(\'1o\').1K(\'k3\');if(q.J.e1().1T(/\\s$/)){$a.3F(" ")}if(q.V.1g!==\'\'||q.V.1g!=1g){if(!q.G.1M&&1Z&&1Z.12<=1){$a.1g(1g)}q.J.9g($a)}}}q.1e.1S();q.1X.2u(\'nu\',$a)}3A($.1d(C(){q.1R.5n()},q),5)},6P:C(e){if(1s e!=\'1y\'&&e.2w){e.2w()}E 23=q.J.6I();if(!23)F;q.25.1U();E 2p=23.12;E 5n=[];2B(E i=0;i<2p;i++){if(23[i].1p===\'A\'){5n.2N(23[i])}E $Q=$(23[i]).2q(\'a\',q.$T[0]);$Q.2t($Q.26())}q.1X.2u(\'nv\',5n);$(\'.I-V-3q\').1u();q.1e.1S()},7O:C(3E){q.V.8g(3E,\'7O\')},2f:C(3E){q.V.8g(3E,\'2f\')},2S:C(3E){q.V.8g(3E,\'2S\')},8g:C(3E,1C){E 5n=q.J.kq([\'a\']);if(5n===O)F;$.1B(5n,C(){$(q)[1C](3E)})}}},2z:C(){F{kB:C(1k){F 1k==q.3j.70||1k==q.3j.a7},aD:C(){F q.G.a2&&(q.G.c1||q.G.bX||q.G.93)&&!q.L.4S(\'8o\')},30:C(){E 2z=q.2z,G=q.G;q.$T.1h(":6h(4R,1L,a,2F)").ni().26().bW(C(){F q.a8===3&&$.3k(q.5O)!=""&&!$(q).1r().is("2F")&&(q.5O.1T(G.2z.4v.72)||q.5O.1T(G.2z.4v.71)||q.5O.1T(G.2z.4v.M)||q.5O.1T(G.2z.4v.2i))}).1B(C(){E 1g=$(q).1g(),B=1g;if(G.93&&(B.1T(G.2z.4v.72)||B.1T(G.2z.4v.71))){B=2z.93(B)}N if(G.bX&&B.1T(G.2z.4v.M)){B=2z.kT(B)}N if(G.c1){B=2z.a2(B)}$(q).a6(1g.K(1g,B)).1u()});E ka=q.$T.1h(\'.I-2z-41\').1B(C(){E $el=$(q);$el.2S(\'I-2z-41\');if($el.1c(\'1G\')===\'\')$el.1K(\'1G\');F $el[0]});q.1X.2u(\'2z\',ka);q.1e.1S()},93:C(B){E bM=\'<4R 1G="I-2z-41" 2J="nm" 3n="no" 4t="\',bK=\'" nn="0" o0></4R>\';if(B.1T(q.G.2z.4v.72)){B=B.K(q.G.2z.4v.72,bM+\'//7n.72.a5/7i/$1\'+bK)}if(B.1T(q.G.2z.4v.71)){B=B.K(q.G.2z.4v.71,bM+\'//oI.71.a5/6Y/$2\'+bK)}F B},kT:C(B){E 3M=B.1T(q.G.2z.4v.M);if(3M){B=B.K(B,\'<1L 4t="\'+3M+\'" 1G="I-2z-41" />\');if(q.G.1M){if(!q.L.3z(q.1e.1b())){B=\'<br>\'+B}}B+=\'<br>\'}F B},a2:C(B){E 3M=B.1T(q.G.2z.4v.2i);if(3M){3M=$.oJ(3M,C(v,k){F $.3t(v,3M)===k});E 12=3M.12;2B(E i=0;i<12;i++){E 2k=3M[i],1g=2k,5c=q.G.5c+\'://\';if(2k.1T(/(5o?|8K):\\/\\//i)!==4e){5c=""}if(1g.12>q.G.cs){1g=1g.aB(0,q.G.cs)+\'...\'}1g=fl(1g);E cu="\\\\b";if($.3t(2k.ct(-1),["/","&","="])!=-1){cu=""}E kx=2a 2l(\'(\'+2k.K(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,"\\\\$&")+cu+\')\',\'g\');B=B.K(kx,\'<a 2k="\'+5c+$.3k(2k)+\'" 1G="I-2z-41">\'+$.3k(1g)+\'</a>\')}}F B}}},2e:C(){F{3m:C(4H){q.3f.1u();if(!q.L.1P(\'2E\'))q.$T.2n();q.25.1U();q.J.3o();E 1r=q.J.67();E $2e=$(1r).2q(\'ol, 3p\',q.$T[0]);if(!q.L.4p($2e)&&$2e.12!==0){$2e=O}E cq,cn;E 1u=O;if($2e&&$2e.12){1u=1q;E cr=$2e[0].1p;cq=(4H===\'5z\'&&cr===\'8D\');cn=(4H===\'5m\'&&cr===\'8N\')}if(cq){q.L.4I($2e,\'ol\')}N if(cn){q.L.4I($2e,\'3p\')}N{if(1u){q.2e.1u(4H,$2e)}N{q.2e.1Y(4H)}}q.J.3d();q.1e.1S()},1Y:C(4H){E 1z=q.J.3B();E $2Y=$(1z).2q(\'2Y, 5P\',q.$T[0]);if(q.L.1P(\'2E\')&&q.G.1M){q.2e.aR(4H)}N{1l.3Z(\'1Y\'+4H)}E 1r=q.J.67();E $2e=$(1r).2q(\'ol, 3p\',q.$T[0]);if($2Y.12!==0){E iK=$2Y.8O();$2Y.3F(iK).1u(\'\')}if(q.L.3z($2e.1h(\'li\').1g())){E $3O=$2e.3O(\'li\');$3O.1h(\'br\').1u();$3O.1F(q.J.5a());if(q.G.1M&&q.L.1P(\'4b\')&&$3O.9B()==2&&q.L.3z($3O.eq(1).1g())){$3O.eq(1).1u()}}if($2e.12){E $7X=$2e.1r();if(q.L.4p($7X)&&$7X[0].1p!=\'5v\'&&q.L.6X($7X[0])){$7X.2t($7X.26())}}if(!q.L.1P(\'2E\')){q.$T.2n()}q.1x.4r()},aR:C(4H){E 4M=q.J.5Z(\'1i\');E aP=$(4M).B();E 85=(4H==\'5z\')?$(\'<ol>\'):$(\'<3p>\');E 8c=$(\'<li>\');if($.3k(aP)===\'\'){8c.1F(q.J.5a());85.1F(8c);q.$T.1h(\'#J-2r-1\').2t(85)}N{E 8k=aP.4o(/<br\\s?\\/?>/gi);if(8k){2B(E i=0;i<8k.12;i++){if($.3k(8k[i])!==\'\'){85.1F($(\'<li>\').B(8k[i]))}}}N{8c.1F(aP);85.1F(8c)}$(4M).2t(85)}},1u:C(4H,$2e){if($.3t(\'3p\',q.J.3X()))4H=\'5m\';1l.3Z(\'1Y\'+4H);E $1z=$(q.J.3B());q.3y.aO();if(!q.G.1M&&$1z.2q(\'li, 5P, 2Y\',q.$T[0]).12===0){1l.3Z(\'9S\',O,\'p\');q.$T.1h(\'3p, ol, 29\').1B($.1d(q.L.4f,q))}E $3W=$(q.J.3B()).2q(\'3W\',q.$T[0]);E $4G=$3W.4G();if(!q.G.1M&&$3W.12!==0&&$4G.12!==0&&$4G[0].1p==\'58\'){$4G.1u()}q.1x.4r()}}},1a:C(){F{aM:{},iW:C(){q.G.1a={iX:6f()+\'<49 id="I-1a-M-7L">\'+\'<2L>\'+q.1H.1b(\'1J\')+\'</2L>\'+\'<3D 1m="1g" id="I-M-1J" />\'+\'<2L 1G="I-M-V-42">\'+q.1H.1b(\'V\')+\'</2L>\'+\'<3D 1m="1g" id="I-M-V" 1G="I-M-V-42" 4K-2L="\'+q.1H.1b(\'V\')+\'" />\'+\'<2L 1G="I-M-V-42"><3D 1m="iP" id="I-M-V-7Z" 4K-2L="\'+q.1H.1b(\'aL\')+\'"> \'+q.1H.1b(\'aL\')+\'</2L>\'+\'<2L 1G="I-M-4g-42">\'+q.1H.1b(\'cC\')+\'</2L>\'+\'<7z 1G="I-M-4g-42" id="I-M-5g" 4K-2L="\'+q.1H.1b(\'cC\')+\'">\'+\'<42 1E="5p">\'+q.1H.1b(\'5p\')+\'</42>\'+\'<42 1E="2c">\'+q.1H.1b(\'2c\')+\'</42>\'+\'<42 1E="5u">\'+q.1H.1b(\'5u\')+\'</42>\'+\'<42 1E="4s">\'+q.1H.1b(\'4s\')+\'</42>\'+\'</7z>\'+\'</49>\',M:6f()+\'<49 id="I-1a-M-1Y">\'+\'<1i id="I-1a-M-4d"></1i>\'+\'</49>\',22:6f()+\'<49 id="I-1a-22-1Y">\'+\'<1i id="I-1a-22-1v-2Q">\'+\'<2L>\'+q.1H.1b(\'6k\')+\'</2L>\'+\'<3D 1m="1g" id="I-6k" 4K-2L="\'+q.1H.1b(\'6k\')+\'" /><br><br>\'+\'<1i id="I-1a-22-1v"></1i>\'+\'</1i>\'+\'</49>\',V:6f()+\'<49 id="I-1a-V-1Y">\'+\'<2L>cD</2L>\'+\'<3D 1m="2i" id="I-V-2i" 4K-2L="cD" />\'+\'<2L>\'+q.1H.1b(\'1g\')+\'</2L>\'+\'<3D 1m="1g" id="I-V-2i-1g" 4K-2L="\'+q.1H.1b(\'1g\')+\'" />\'+\'<2L><3D 1m="iP" id="I-V-7Z"> \'+q.1H.1b(\'aL\')+\'</2L>\'+\'</49>\'};$.7E(q.G,q.G.1a)},cB:C(1w,2A){q.1a.aM[1w]=2A},oX:C($1a){q.1a.$94=$(\'<1i>\').1c(\'id\',\'I-1a-94\');$1a.6t(q.1a.$94)},oY:C(id,1w,8Z){E $5I=$(\'<a 2k="#" 3T="5I\'+id+\'">\').1g(1w);if(8Z){$5I.2f(\'8Z\')}E 3u=q;$5I.on(\'2y\',C(e){e.2w();$(\'.I-5I\').3v();$(\'.I-\'+$(q).1c(\'3T\')).2O();3u.1a.$94.1h(\'a\').2S(\'8Z\');$(q).2f(\'8Z\')});q.1a.$94.1F($5I)},oZ:C(1w,ic){q.G.1a[1w]=ic},i9:C(1w){F q.G.1a[1w]},oU:C(){F q.$aX.1h(\'49\')},2R:C(62,1J,2J){q.1a.62=62;q.1a.2J=2J;q.1a.2o();q.1a.jr();q.1a.i7(1J);q.1a.ik();q.1a.i8();if(1s q.1a.aM[62]!=\'1y\'){q.1a.aM[62].6e(q)}},2O:C(){q.L.d8();if(q.L.6M()){q.1a.cx()}N{q.1a.aZ()}if(q.G.cA){q.$4F.2f("I-1a-jP")}q.$74.2O();q.$4F.2O();q.$1a.1c(\'6S\',\'-1\');q.$1a.2n();q.1a.ip();q.L.8z();if(!q.L.6M()){3A($.1d(q.1a.aZ,q),0);$(3l).on(\'4J.I-1a\',$.1d(q.1a.4J,q))}q.1X.2u(\'oP\',q.1a.62,q.$1a);$(1l).3h(\'oO.1a\');q.$1a.1h(\'3D[1m=1g],3D[1m=2i],3D[1m=oQ]\').on(\'1D.I-1a\',$.1d(q.1a.iu,q))},aZ:C(){E 3n=q.$1a.oR();E aT=$(3l).3n();E 7u=$(3l).2J();if(q.1a.2J>7u){q.$1a.1O({2J:\'96%\',63:(aT/2-3n/2)+\'px\'});F}if(3n>aT){q.$1a.1O({2J:q.1a.2J+\'px\',63:\'oS\'})}N{q.$1a.1O({2J:q.1a.2J+\'px\',63:(aT/2-3n/2)+\'px\'})}},cx:C(){q.$1a.1O({2J:\'96%\',63:\'2%\'})},4J:C(){if(q.L.6M()){q.1a.cx()}N{q.1a.aZ()}},i7:C(1J){q.$9e.B(1J)},i8:C(){q.$aX.B(q.1a.i9(q.1a.62))},ik:C(){if(1s $.fn.iv===\'1y\')F;q.$1a.iv({iw:q.$9e});q.$9e.1O(\'oa\',\'oc\')},iu:C(e){if(e.7U!=13)F;e.2w();q.$1a.1h(\'1t.I-1a-7M-21\').2y()},cy:C(){E 1t=$(\'<1t>\').2f(\'I-1a-21 I-1a-4j-21\').B(q.1H.1b(\'it\'));1t.on(\'2y\',$.1d(q.1a.4j,q));q.$9i.1F(1t)},io:C(2L){F q.1a.cm(2L,\'83\')},cz:C(2L){F q.1a.cm(2L,\'7M\')},cm:C(2L,3E){E 1t=$(\'<1t>\').2f(\'I-1a-21\').2f(\'I-1a-\'+3E+\'-21\').B(2L);q.$9i.1F(1t);F 1t},ip:C(){E 4i=q.$9i.1h(\'1t\');E cl=4i.12;if(cl===0)F;4i.1O(\'2J\',(88/cl)+\'%\')},2o:C(){q.1a.jw();q.$4F=$(\'<1i id="I-1a-2Q"/>\').3v();q.$1a=$(\'<1i id="I-1a" 9c="o9" 4K-o8="I-1a-87" />\');q.$9e=$(\'<87 id="I-1a-87"/>\');q.$8X=$(\'<1t 1m="1t" id="I-1a-4j" 6S="1" 4K-2L="o3" />\').B(\'&o2;\');q.$aX=$(\'<1i id="I-1a-31" />\');q.$9i=$(\'<c8 />\');q.$1a.1F(q.$9e);q.$1a.1F(q.$8X);q.$1a.1F(q.$aX);q.$1a.1F(q.$9i);q.$4F.1F(q.$1a);q.$4F.aU(1l.31)},jw:C(){q.$74=$(\'<1i id="I-1a-o5">\').3v();$(\'31\').6t(q.$74)},jr:C(){q.$8X.on(\'2y.I-1a\',$.1d(q.1a.4j,q));$(1l).on(\'2s.I-1a\',$.1d(q.1a.9a,q));q.$T.on(\'2s.I-1a\',$.1d(q.1a.9a,q));q.$4F.on(\'2y.I-1a\',$.1d(q.1a.4j,q))},jC:C(){q.$8X.3h(\'2y.I-1a\');$(1l).3h(\'2s.I-1a\');q.$T.3h(\'2s.I-1a\');q.$4F.3h(\'2y.I-1a\');$(3l).3h(\'4J.I-1a\')},9a:C(e){if(e.7U!=q.3j.b2)F;q.1a.4j(O)},4j:C(e){if(e){if(!$(e.1Q).3i(\'I-1a-4j-21\')&&e.1Q!=q.$8X[0]&&e.1Q!=q.$4F[0]){F}e.2w()}if(!q.$4F)F;q.1a.jC();q.L.bJ();q.$74.1u();q.$4F.iM(\'of\',$.1d(C(){q.$4F.1u();3A($.1d(q.L.bk,q),0);if(e!==1y)q.J.3d();$(1l.31).1O(\'bI\',q.1a.og);q.1X.2u(\'ot\',q.1a.62)},q))}}},1R:C(){F{2R:C(){if(1s q.G.jL!="1y")F;if(q.L.1P(\'2E\')){E 3u=q;q.$T.1h(\'2F, 1e\').on(\'ay\',C(){3u.$T.1c(\'5d\',O);$(q).1c(\'5d\',1q)}).on(\'az\',C(){3u.$T.1c(\'5d\',1q);$(q).1K(\'5d\')})}q.1R.au();q.1R.5n()},1A:C(e,2g){q.1R.4i(e,2g);q.1R.79()},c7:C($el,$1z){if(1s $1z==\'1y\'){E $1z=$(q.J.3B())}F $1z.is($el)||$1z.dL($el).12>0},79:C(){E $1z=$(q.J.3B());$.1B(q.G.1R.79,$.1d(C(1k,1E){E 1R=1E.1R,2j=1R.2j,$2x=1E.2x,c3=1s 1R[\'in\']!=\'1y\'?1R[\'in\']:O,c6=1s 1R[\'2m\']!=\'1y\'?1R[\'2m\']:O;if($1z.2q(2j).9B()>0){q.1R.c4($2x,c3,c6)}N{q.1R.c4($2x,c6,c3)}},q))},c4:C($2x,9s,ax){if(ax&&1s ax[\'1c\']!=\'1y\'){q.1R.c5($2x,ax.1c,1q)}if(1s 9s[\'1c\']!=\'1y\'){q.1R.c5($2x,9s.1c)}if(1s 9s[\'1J\']!=\'1y\'){$2x.1g(9s[\'1J\'])}},c5:C($2x,jq,cb){$.1B(jq,C(1k,1E){if(1k==\'1G\'){if(!cb){$2x.2f(1E)}N{$2x.2S(1E)}}N{if(!cb){$2x.1c(1k,1E)}N{$2x.1K(1k)}}})},cc:C($2x,2g,2X){if(1s 2X.1R=="1y")F;2X.2x=$2x;q.G.1R.79.2N(2X)},4i:C(e,2g){E 1z=q.J.3B();E 1r=q.J.67();if(e!==O){q.1t.cj()}N{q.1t.cj(2g)}if(e===O&&2g!==\'B\'){if($.3t(2g,q.G.b5)!=-1)q.1t.oq(2g);F}$.1B(q.G.cg,$.1d(C(1k,1E){E aw=$(1r).2q(1k,q.$T[0]);E ck=$(1z).2q(1k,q.$T[0]);if(aw.12!==0&&!q.L.4p(aw))F;if(!q.L.4p(ck))F;if(aw.12!==0||ck.2q(1k,q.$T[0]).12!==0){q.1t.9q(1E)}},q));E $1r=$(1r).2q(q.G.8F.4y().3e(),q.$T[0]);if(q.L.4p(1r)&&$1r.12){E 5g=($1r.1O(\'1g-5g\')===\'\')?\'2c\':$1r.1O(\'1g-5g\');q.1t.9q(\'5g\'+5g)}},oi:C(Y,2g){q.G.b5.2N(2g);q.G.cg[Y]=2g},au:C(){q.$T.1h(\'1L\').1B($.1d(C(i,1L){E $1L=$(1L);$1L.2q(\'a\',q.$T[0]).on(\'2y\',C(e){e.2w()});if(q.L.1P(\'2E\'))$1L.1c(\'oh\',\'on\');q.M.j1($1L)},q));$(1l).on(\'2y.I-M-83.\'+q.2G,$.1d(C(e){q.1R.M=O;if(e.1Q.1p==\'aA\'&&q.L.4p(e.1Q)){q.1R.M=(q.1R.M&&q.1R.M==e.1Q)?O:e.1Q}},q))},5n:C(){if(!q.G.j4)F;q.$T.1h(\'a\').on(\'5H.I.\'+q.2G+\' 2y.I.\'+q.2G,$.1d(q.1R.jc,q));q.$T.on(\'5H.I.\'+q.2G+\' 2y.I.\'+q.2G,$.1d(q.1R.cf,q));$(1l).on(\'5H.I.\'+q.2G+\' 2y.I.\'+q.2G,$.1d(q.1R.cf,q))},jl:C($V){F $V.2I()},jc:C(e){E $el=$(e.1Q);if($el[0].1p==\'aA\')F;if($el[0].1p!==\'A\')$el=$el.2q(\'a\',q.$T[0]);if($el[0].1p!==\'A\')F;E $V=$el;E 3s=q.1R.jl($V);E 3q=$(\'<1j 1G="I-V-3q"></1j>\');E 2k=$V.1c(\'2k\');if(2k===1y){2k=\'\'}if(2k.12>24)2k=2k.aB(0,24)+\'...\';E jj=$(\'<a 2k="\'+$V.1c(\'2k\')+\'" 1Q="7K" />\').B(2k).2f(\'I-V-3q-7M\');E jf=$(\'<a 2k="#" />\').B(q.1H.1b(\'7L\')).on(\'2y\',$.1d(q.V.2O,q)).2f(\'I-V-3q-7M\');E je=$(\'<a 2k="#" />\').B(q.1H.1b(\'6P\')).on(\'2y\',$.1d(q.V.6P,q)).2f(\'I-V-3q-7M\');3q.1F(jj).1F(\' | \').1F(jf).1F(\' | \').1F(je);3q.1O({2U:(3s.2U+5L($V.1O(\'3K-3n\'),10))+\'px\',2c:3s.2c+\'px\'});$(\'.I-V-3q\').1u();$(\'31\').1F(3q)},cf:C(e){e=e.7T||e;E 1Q=e.1Q;E $1r=$(1Q).2q(\'a\',q.$T[0]);if($1r.12!==0&&$1r[0].1p===\'A\'&&1Q.1p!==\'A\'){F}N if((1Q.1p===\'A\'&&q.L.4p(1Q))||$(1Q).3i(\'I-V-3q-7M\')){F}$(\'.I-V-3q\').1u()}}},2V:C(){F{2R:C(B){if(q.G.1M)F B;if(B===\'\'||B===\'<p></p>\')F q.G.5S;B=B+"\\n";q.2V.aC=[];q.2V.z=0;B=B.K(/(<br\\s?\\/?>){1,}\\n?<\\/29>/gi,\'</29>\');B=q.2V.jk(B);B=q.2V.j6(B);B=q.2V.jF(B);B=q.2V.jp(B);B=q.2V.8M(B);B=q.2V.j7(B);B=B.K(2a 2l(\'<br\\\\s?/?>\\n?<(\'+q.G.ej.3c(\'|\')+\')(.*?[^>])>\',\'gi\'),\'<p><br /></p>\\n<$1$2>\');F $.3k(B)},jk:C(B){E $1i=$(\'<1i />\').1F(B);$1i.1h(\'29 p\').2t(C(){F $(q).1F(\'<br />\').26()});B=$1i.B();$1i.1h(q.G.ej.3c(\', \')).1B($.1d(C(i,s){q.2V.z++;q.2V.aC[q.2V.z]=s.7v;B=B.K(s.7v,\'\\n{K\'+q.2V.z+\'}\')},q));F B},j6:C(B){E dX=B.1T(/<!--([\\w\\W]*?)-->/gi);if(!dX)F B;$.1B(dX,$.1d(C(i,s){q.2V.z++;q.2V.aC[q.2V.z]=s;B=B.K(s,\'\\n{K\'+q.2V.z+\'}\')},q));F B},j7:C(B){$.1B(q.2V.aC,C(i,s){s=(1s s!==\'1y\')?s.K(/\\$/g,\'$\'):s;B=B.K(\'{K\'+i+\'}\',s)});F B},jp:C(B){E 4O=B.4o(2a 2l(\'\\n\',\'g\'),-1);B=\'\';if(4O){E 2p=4O.12;2B(E i=0;i<2p;i++){if(!4O.ow(i))F;if(4O[i].3N(\'{K\')==-1){4O[i]=4O[i].K(/<p>\\n\\t?<\\/p>/gi,\'\');4O[i]=4O[i].K(/<p><\\/p>/gi,\'\');if(4O[i]!==\'\'){B+=\'<p>\'+4O[i].K(/^\\n+|\\n+$/g,"")+"</p>"}}N B+=4O[i]}}F B},jF:C(B){B=B.K(/<br \\/>\\s*<br \\/>/gi,"\\n\\n");B=B.K(/<br\\s?\\/?>\\n?<br\\s?\\/?>/gi,"\\n<br /><br />");B=B.K(2a 2l("\\r\\n",\'g\'),"\\n");B=B.K(2a 2l("\\r",\'g\'),"\\n");B=B.K(2a 2l("/\\n\\n+/"),\'g\',"\\n\\n");F B},8M:C(B){B=B.K(2a 2l(\'</29></p>\',\'gi\'),\'</29>\');B=B.K(2a 2l(\'<p></29>\',\'gi\'),\'</29>\');B=B.K(2a 2l(\'<p><29>\',\'gi\'),\'<29>\');B=B.K(2a 2l(\'<29></p>\',\'gi\'),\'<29>\');B=B.K(2a 2l(\'<p><p \',\'gi\'),\'<p \');B=B.K(2a 2l(\'<p><p>\',\'gi\'),\'<p>\');B=B.K(2a 2l(\'</p></p>\',\'gi\'),\'</p>\');B=B.K(2a 2l(\'<p>\\\\s?</p>\',\'gi\'),\'\');B=B.K(2a 2l("\\n</p>",\'gi\'),\'</p>\');B=B.K(2a 2l(\'<p>\\t?\\t?\\n?<p>\',\'gi\'),\'<p>\');B=B.K(2a 2l(\'<p>\\t*</p>\',\'gi\'),\'\');F B}}},5C:C(){F{3Q:C(e){if(!q.G.jJ){3A($.1d(q.1e.1S,q),1);F}q.7B=1q;q.25.1U();q.J.3o();q.L.8z();q.5C.ju();$(3l).on(\'6b.I-jv\',$.1d(C(){$(3l).3U(q.bm)},q));3A($.1d(C(){E B=q.$5e.B();q.$5e.1u();q.J.3d();q.L.bk();q.5C.1Y(B);$(3l).3h(\'6b.I-jv\');if(q.2z.aD())q.2z.30()},q),1)},ju:C(){q.$5e=$(\'<1i>\').B(\'\').1c(\'5d\',\'1q\').1O({4g:\'82\',2J:0,2U:0,2c:\'-o4\'});if(q.L.1P(\'2E\')){q.$2Q.1F(q.$5e)}N{if($(\'.1a-31\').12>0){$(\'.1a-31\').1F(q.$5e)}N{$(\'31\').1F(q.$5e)}}q.$5e.2n()},1Y:C(B){B=q.1X.2u(\'od\',B);B=(q.L.9w())?q.1x.8y(B,O):q.1x.8y(B);B=q.1X.2u(\'5C\',B);if(q.L.9w()){q.1Y.1U(B,O)}N{q.1Y.B(B,O)}q.L.8U();q.7B=O;3A($.1d(q.1x.4r,q),10);3A($.1d(C(){E ii=q.$T.1h(\'1j\');$.1B(ii,C(i,s){E B=s.3x.K(/\\6g/,\'\');if(B===\'\'&&s.4u.12===0)$(s).1u()})},q),10)}}},3f:C(){F{9Q:C(){if(!q.3f.is())F;q.$T.1c(\'3f\',q.$2j.1c(\'3f\'));q.3f.3m();q.$T.on(\'1D.I-3f\',$.1d(q.3f.3m,q))},3m:C(){3A($.1d(C(){E 1C=q.L.3z(q.$T.B(),O)?\'2f\':\'2S\';q.$T[1C](\'I-3f\')},q),5)},1u:C(){q.$T.2S(\'I-3f\')},is:C(){if(q.G.3f){F q.$2j.1c(\'3f\',q.G.3f)}N{F!(1s q.$2j.1c(\'3f\')==\'1y\'||q.$2j.1c(\'3f\')===\'\')}}}},5E:C(){F{2O:C(){$(1l.31).1F($(\'<1i id="I-5E"><1j></1j></1i>\'));$(\'#I-5E\').oN()},3v:C(){$(\'#I-5E\').iM(oM,C(){$(q).1u()})}}},J:C(){F{1b:C(){q.2T=1l.4D();if(1l.4D&&q.2T.6l&&q.2T.7A){q.14=q.2T.6l(0)}N{q.14=1l.92()}},4l:C(){52{q.2T.8T()}51(e){}q.2T.4l(q.14)},3B:C(){E el=O;q.J.1b();if(q.2T&&q.2T.7A>0){el=q.2T.6l(0).ko}F q.L.4p(el)},67:C(4V){4V=4V||q.J.3B();if(4V){F q.L.4p($(4V).1r()[0])}F O},iG:C(){F 3l.4D().iI.oB},oz:C(){F 3l.4D().iI.oA},4a:C(Q){Q=Q||q.J.3B();56(Q){if(q.L.7J(Q.1p)){F($(Q).3i(\'I-T\'))?O:Q}Q=Q.e4}F O},e8:C(23,2d){q.J.1b();if(q.14&&q.14.53){F O}E 5U=[];23=(1s 23==\'1y\'||23===O)?q.J.6I():23;E 4N=q.G.4N;4N.2N(\'1j\');if(1s 2d!==\'1y\'){2B(E i=0;i<2d.12;i++){4N.2N(2d[i])}}$.1B(23,$.1d(C(i,Q){if($.3t(Q.1p.3e(),4N)!=-1){5U.2N(Q)}},q));F(5U.12===0)?O:5U},kq:C(2d){q.J.1b();if(q.14&&q.14.53){F O}E 5U=[];E 23=q.J.6I();$.1B(23,$.1d(C(i,Q){if($.3t(Q.1p.3e(),2d)!=-1){5U.2N(Q)}},q));F(5U.12===0)?O:5U},3X:C(23){q.J.1b();if(q.14&&q.14.53){F[q.J.4a()]}E 1Z=[];23=(1s 23==\'1y\')?q.J.6I():23;$.1B(23,$.1d(C(i,Q){if(q.L.6X(Q)){q.J.kI=Q;1Z.2N(Q)}},q));F(1Z.12===0)?[q.J.4a()]:1Z},kJ:C(){F q.J.kI},6I:C(){q.J.1b();E 78=q.J.ei(1);E 9J=q.J.ei(2);if(q.14.53===O){if(3l.4D){E 2T=3l.4D();if(2T.7A>0){E 14=2T.6l(0);E kf=14.ko,ef=14.ef;E 7F=14.7S();7F.43(O);7F.3L(9J);7F.2W(kf,ef);7F.43(1q);7F.3L(78);14.9I(78);14.ks(9J);2T.8T();2T.4l(14)}}}N{q.J.k0(q.14,78,1q);9J=78}E 23=[];E 9z=0;E 3u=q;q.$T.1h(\'*\').1B(C(){if(q==78){E 1r=$(q).1r();if(1r.12!==0&&1r[0].1p!=\'e6\'&&3u.L.4p(1r[0])){23.2N(1r[0])}23.2N(q);9z=1}N{if(9z>0){23.2N(q);9z=9z+1}}if(q==9J){F O}});E eb=[];E 2p=23.12;2B(E i=0;i<2p;i++){if(23[i].id!=\'23-2r-1\'&&23[i].id!=\'23-2r-2\'){eb.2N(23[i])}}q.J.kp();F eb},ei:C(6d){F $(\'<1j id="23-2r-\'+6d+\'" 1G="I-23-2r" 1f-3H="I">\'+q.G.6o+\'</1j>\')[0]},k0:C(14,Q,1m){E 14=14.7S();52{14.43(1m);14.3L(Q)}51(e){}},kp:C(){$(1l).1h(\'1j.I-23-2r\').1u();q.$T.1h(\'1j.I-23-2r\').1u()},nQ:C(2b,2h){q.1V.eh(2b,2h)},5Z:C(Y){q.J.1b();if(q.14.53)F O;E 4M=1l.3w(Y);4M.81(q.14.nT());q.14.3L(4M);F 4M},9g:C(Q){if(q.L.1P(\'4b\')){Q=Q[0]||Q;E 14=1l.92();14.9j(Q)}N{q.1V.1U(Q,0,Q,1)}},bd:C(){q.J.1b();q.14.9j(q.$T[0]);q.J.4l()},1u:C(){q.J.1b();q.2T.8T()},3o:C(){q.J.g2()},g2:C(){q.J.1b();E 5M=q.J.6Q(1);q.J.ed(q.14,5M,1q);if(q.14.53===O){E 9C=q.J.6Q(2);q.J.ed(q.14,9C,O);if(q.L.1P(\'hw\')){q.1V.1U(5M,0,9C,0);}}q.eT=q.$T.B()},6Q:C(6d){if(1s 6d==\'1y\')6d=1;F $(\'<1j id="J-2r-\'+6d+\'" 1G="I-J-2r" 1f-3H="I">\'+q.G.6o+\'</1j>\')[0]},5a:C(6d){F q.L.6q(q.J.6Q(6d))},ed:C(14,Q,1m){14=14.7S();52{14.43(1m);14.3L(Q)}51(e){q.2n.2W()}},3d:C(){E 5M=q.$T.1h(\'1j#J-2r-1\');E 9C=q.$T.1h(\'1j#J-2r-2\');if(q.L.1P(\'4b\')){q.$T.2n()}if(5M.12!==0&&9C.12!==0){q.1V.1U(5M,0,9C,0)}N if(5M.12!==0){q.1V.1U(5M,0,5M,0)}N{q.$T.2n()}q.J.8p();q.eT=O},8p:C(){q.$T.1h(\'1j.I-J-2r\').1B(C(i,s){E 1g=$(s).1g().K(/\\6g/g,\'\');if(1g===\'\')$(s).1u();N $(s).2t(C(){F $(q).26()})})},e1:C(){q.J.1b();F q.2T.4y()},q5:C(){E B=\'\';q.J.1b();if(q.2T.7A){E dY=1l.3w(\'1i\');E 2p=q.2T.7A;2B(E i=0;i<2p;++i){dY.81(q.2T.6l(i).qN())}B=dY.3x}F q.1x.9R(B)},go:C(B){q.J.1b();q.14.55();E 1i=1l.3w("1i");1i.3x=B;E 4L=1l.9M(),4w;56((4w=1i.9N)){4L.81(4w)}q.14.3L(4L)},qE:C(B){B=q.J.5a(1)+B+q.J.5a(2);q.J.1b();if(3l.4D&&3l.4D().6l){q.J.go(B)}N if(1l.J&&1l.J.92){q.14.gw(B)}q.J.3d();q.1e.1S()}}},6m:C(){F{3Q:C(e,1k){if(!q.G.6m){if((e.9u||e.6J)&&(1k===66||1k===73))e.2w();F O}$.1B(q.G.6m,$.1d(C(5f,4A){E 4X=5f.4o(\',\');E 2p=4X.12;2B(E i=0;i<2p;i++){if(1s 4X[i]===\'6Z\'){q.6m.7N(e,$.3k(4X[i]),$.1d(C(){E 1C;if(4A.1C.3N(/\\./)!=\'-1\'){1C=4A.1C.4o(\'.\');if(1s q[1C[0]]!=\'1y\'){q[1C[0]][1C[1]].9E(q,4A.6p)}}N{q[4A.1C].9E(q,4A.6p)}},q))}}},q))},7N:C(e,4X,fq){E g5={8:"pS",9:"5I",10:"F",13:"F",16:"6E",17:"48",18:"80",19:"pB",20:"pA",27:"py",32:"3g",33:"pE",34:"pF",35:"2h",36:"lb",37:"2c",38:"ls",39:"4s",40:"l8",45:"1Y",46:"4h",59:";",61:"=",96:"0",97:"1",98:"2",99:"3",88:"4",mN:"5",mS:"6",mT:"7",ln:"8",le:"9",mP:"*",lY:"+",me:"-",md:".",m4:"/",lV:"f1",mJ:"f2",q1:"f3",mD:"f4",pN:"f5",pa:"f6",p9:"f7",p3:"f8",ps:"f9",pk:"pZ",qD:"qF",qA:"qu",qw:"qx",qz:"6b",qS:"-",qR:";",qJ:"=",q9:",",q8:"-",qo:".",ql:"/",qh:"`",e5:"[",nG:"\\\\",ek:"]",nF:"\'"};E e9={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"nM","=":"+",";":": ","\'":"\\"",",":"<",".":">","/":"?","\\\\":"|"};4X=4X.3e().4o(" ");E bu=g5[e.3j],9h=6f.nW(e.7U).3e(),86="",7j={};$.1B(["80","48","5h","6E"],C(68,bz){if(e[bz+\'nX\']&&bu!==bz){86+=bz+\'+\'}});if(bu)7j[86+bu]=1q;if(9h){7j[86+9h]=1q;7j[86+e9[9h]]=1q;if(86==="6E+"){7j[e9[9h]]=1q}}2B(E i=0,2p=4X.12;i<2p;i++){if(7j[4X[i]]){e.2w();F fq.9E(q,fA)}}}}},2H:C(){F{1b:C(1e){if(!q.G.2H)F 1e;E dZ=[\'fx\',\'31\',\'e0\',\'hr\',\'i?n9\',\'V\',\'5h\',\'n5\',\'1o\',\'3V\',\'3W\',\'ee\',\'e7\',\'e3\'];E e2=[\'li\',\'dt\',\'dt\',\'h[1-6]\',\'42\',\'3V\'];E 8H=[\'p\',\'29\',\'1i\',\'dl\',\'iT\',\'64\',\'oV\',\'iA\',\'ol\',\'2F\',\'7z\',\'2Y\',\'5P\',\'6O\',\'3p\'];q.2H.jE=2a 2l(\'^<(/?\'+dZ.3c(\'|/?\')+\'|\'+e2.3c(\'|\')+\')[ >]\');q.2H.j8=2a 2l(\'^<(br|/?\'+dZ.3c(\'|/?\')+\'|/\'+e2.3c(\'|/\')+\')[ >]\');q.2H.8H=2a 2l(\'^</?(\'+8H.3c(\'|\')+\')[ >]\');E i=0,bl=1e.12,3S=0,2b=4e,2h=4e,Y=\'\',2m=\'\',5b=\'\';q.2H.8L=0;2B(;i<bl;i++){3S=i;if(-1==1e.4x(i).4Q(\'<\')){2m+=1e.4x(i);F q.2H.eg(2m)}56(3S<bl&&1e.6a(3S)!=\'<\'){3S++}if(i!=3S){5b=1e.4x(i,3S-i);if(!5b.1T(/^\\s{2,}$/g)){if(\'\\n\'==2m.6a(2m.12-1))2m+=q.2H.7r();N if(\'\\n\'==5b.6a(0)){2m+=\'\\n\'+q.2H.7r();5b=5b.K(/^\\s+/,\'\')}2m+=5b}if(5b.1T(/\\n/))2m+=\'\\n\'+q.2H.7r()}2b=3S;56(3S<bl&&\'>\'!=1e.6a(3S)){3S++}Y=1e.4x(2b,3S-2b);i=3S;E t;if(\'!--\'==Y.4x(1,3)){if(!Y.1T(/--$/)){56(\'-->\'!=1e.4x(3S,3)){3S++}3S+=2;Y=1e.4x(2b,3S-2b);i=3S}if(\'\\n\'!=2m.6a(2m.12-1))2m+=\'\\n\';2m+=q.2H.7r();2m+=Y+\'>\\n\'}N if(\'!\'==Y[1]){2m=q.2H.bD(Y+\'>\',2m)}N if(\'?\'==Y[1]){2m+=Y+\'>\\n\'}N if(t=Y.1T(/^<(3V|1o|2F)/i)){t[1]=t[1].3e();Y=q.2H.ec(Y);2m=q.2H.bD(Y,2m);2h=6f(1e.4x(i+1)).3e().4Q(\'</\'+t[1]);if(2h){5b=1e.4x(i+1,2h);i+=2h;2m+=5b}}N{Y=q.2H.ec(Y);2m=q.2H.bD(Y,2m)}}F q.2H.eg(2m)},7r:C(){E s=\'\';2B(E j=0;j<q.2H.8L;j++){s+=\'\\t\'}F s},eg:C(1e){1e=1e.K(/\\n\\s*\\n/g,\'\\n\');1e=1e.K(/^[\\s\\n]*/,\'\');1e=1e.K(/[\\s\\n]*$/,\'\');1e=1e.K(/<3V(.*?)>\\n<\\/3V>/gi,\'<3V$1></3V>\');q.2H.8L=0;F 1e},ec:C(Y){E 8E=\'\';Y=Y.K(/\\n/g,\' \');Y=Y.K(/\\s{2,}/g,\' \');Y=Y.K(/^\\s+|\\s+$/g,\' \');E ea=\'\';if(Y.1T(/\\/$/)){ea=\'/\';Y=Y.K(/\\/+$/,\'\')}E m;56(m=/\\s*([^= ]+)(?:=(([\'"\']).*?\\3|[^ ]+))?/.5j(Y)){if(m[2])8E+=m[1].3e()+\'=\'+m[2];N if(m[1])8E+=m[1].3e();8E+=\' \';Y=Y.4x(m[0].12)}F 8E.K(/\\s*$/,\'\')+ea+\'>\'},bD:C(Y,2m){E nl=Y.1T(q.2H.8H);if(Y.1T(q.2H.jE)||nl){2m=2m.K(/\\s*$/,\'\');2m+=\'\\n\'}if(nl&&\'/\'==Y.6a(1))q.2H.8L--;if(\'\\n\'==2m.6a(2m.12-1))2m+=q.2H.7r();if(nl&&\'/\'!=Y.6a(1))q.2H.8L++;2m+=Y;if(Y.1T(q.2H.j8)||Y.1T(q.2H.8H)){2m=2m.K(/ *$/,\'\')}F 2m}}},1I:C(){F{ja:C(){if(q.G.4z)q.G.4c=O;if(q.G.4T)q.G.1K=O;if(q.G.1M)F;E 2d=[\'p\',\'49\'];if(q.G.4z)q.1I.jd(2d);if(q.G.4c)q.1I.jg(2d)},jd:C(2d){E 2p=2d.12;2B(E i=0;i<2p;i++){if($.3t(2d[i],q.G.4z)==-1){q.G.4z.2N(2d[i])}}},jg:C(2d){E 2p=2d.12;2B(E i=0;i<2p;i++){E 3s=$.3t(2d[i],q.G.4c);if(3s!=-1){q.G.4c.bi(3s,1)}}},2R:C(B,44){q.1I.2D={4c:q.G.4c,4z:q.G.4z,6G:q.G.6G,5B:q.G.5B,5A:q.G.5A,5y:q.G.5y,1K:q.G.1K,4T:q.G.4T,6L:q.G.6L,4f:q.G.4f};$.7E(q.1I.2D,44);B=q.1I.6G(B);q.1I.$1i=$(\'<1i />\').1F(B);q.1I.5B();q.1I.5A();q.1I.ji();q.1I.1K();q.1I.4f();q.1I.j5();q.1I.5y();q.1I.6L();B=q.1I.$1i.B();q.1I.$1i.1u();F B},6G:C(B){if(!q.1I.2D.6G)F B;F B.K(/<!--[\\s\\S]*?-->/gi,\'\')},5B:C(B){if(!q.1I.2D.5B)F B;E 2p=q.1I.2D.5B.12;E 5F=[],dB=[];2B(E i=0;i<2p;i++){dB.2N(q.1I.2D.5B[i][1]);5F.2N(q.1I.2D.5B[i][0])}$.1B(5F,$.1d(C(1k,1E){q.1I.$1i.1h(1E).2t(C(){F $("<"+dB[1k]+" />",{B:$(q).B()})})},q))},5A:C(){if(!q.1I.2D.5A)F;E 2p=q.1I.2D.5A.12;q.1I.$1i.1h(\'1j\').1B($.1d(C(n,s){E $el=$(s);E 1o=$el.1c(\'1o\');2B(E i=0;i<2p;i++){if(1o&&1o.1T(2a 2l(\'^\'+q.1I.2D.5A[i][0],\'i\'))){E 1p=q.1I.2D.5A[i][1];$el.2t(C(){E Y=1l.3w(1p);F $(Y).1F($(q).26())})}}},q))},ji:C(){if(!q.1I.2D.4c&&q.1I.2D.4z){q.1I.$1i.1h(\'*\').6h(q.1I.2D.4z.3c(\',\')).1B(C(i,s){if(s.3x===\'\')$(s).1u();N $(s).26().3Y()})}if(q.1I.2D.4c){q.1I.$1i.1h(q.1I.2D.4c.3c(\',\')).1B(C(i,s){if($(s).3i(\'I-3V-Y\')||$(s).3i(\'I-J-2r\'))F;if(s.3x===\'\')$(s).1u();N $(s).26().3Y()})}},1K:C(){E 2p;if(!q.1I.2D.1K&&q.1I.2D.4T){E ce=[],cd=[];2p=q.1I.2D.4T.12;2B(E i=0;i<2p;i++){ce.2N(q.1I.2D.4T[i][0]);cd.2N(q.1I.2D.4T[i][1])}q.1I.$1i.1h(\'*\').1B($.1d(C(n,s){E $el=$(s);E 3s=$.3t($el[0].1p.3e(),ce);E 5D=q.1I.jn(3s,cd,$el);if(5D){$.1B(5D,C(z,f){$el.1K(f)})}},q))}if(q.1I.2D.1K){2p=q.1I.2D.1K.12;2B(E i=0;i<2p;i++){E 8j=q.1I.2D.1K[i][1];if($.bc(8j))8j=8j.3c(\' \');q.1I.$1i.1h(q.1I.2D.1K[i][0]).1K(8j)}}},jn:C(3s,5J,$el){E 5D=[];if(3s==-1){$.1B($el[0].4u,C(i,2x){5D.2N(2x.1w)})}N if(5J[3s]==\'*\'){5D=[]}N{$.1B($el[0].4u,C(i,2x){if($.bc(5J[3s])){if($.3t(2x.1w,5J[3s])==-1){5D.2N(2x.1w)}}N if(5J[3s]!=2x.1w){5D.2N(2x.1w)}})}F 5D},j3:C(el,bv){bv=2a 2l(bv,"g");F el.1B(C(){E 3u=$(q);E 2p=q.4u.12-1;2B(E i=2p;i>=0;i--){E 2x=q.4u[i];if(2x&&2x.oj&&2x.1w.3N(bv)>=0){3u.1K(2x.1w)}}})},4f:C(){if(!q.1I.2D.4f)F;q.1I.$1i.1h(q.1I.2D.4f.3c(\',\')).1B(C(){E $el=$(q);E 1g=$el.1g();1g=1g.K(/\\6g/g,\'\');1g=1g.K(/&5s;/gi,\'\');1g=1g.K(/\\s/g,\'\');if(1g===\'\'&&$el.3O().12===0){$el.1u()}})},j5:C(){q.1I.$1i.1h(\'li p\').26().3Y()},5y:C(){if(!q.1I.2D.5y)F;E 2d=q.1I.2D.5y;if($.bc(q.1I.2D.5y))2d=q.1I.2D.5y.3c(\',\');q.1I.j3(q.1I.$1i.1h(2d),\'^(1f-)\')},6L:C(){if(!q.1I.2D.6L)F;q.1I.$1i.1h(q.1I.2D.6L.3c(\',\')).1B(C(){if(q.4u.12===0){$(q).26().3Y()}})}}},1A:C(){F{3Q:C(){F{B:{1J:q.1H.1b(\'B\'),1C:\'1e.3m\'},3a:{1J:q.1H.1b(\'3a\'),1n:{p:{1J:q.1H.1b(\'j2\'),1C:\'R.30\'},29:{1J:q.1H.1b(\'ci\'),1C:\'R.30\'},2F:{1J:q.1H.1b(\'1e\'),1C:\'R.30\'},h1:{1J:q.1H.1b(\'jb\'),1C:\'R.30\'},h2:{1J:q.1H.1b(\'jH\'),1C:\'R.30\'},h3:{1J:q.1H.1b(\'jI\'),1C:\'R.30\'},h4:{1J:q.1H.1b(\'jM\'),1C:\'R.30\'},h5:{1J:q.1H.1b(\'jD\'),1C:\'R.30\'}}},4n:{1J:q.1H.1b(\'4n\'),1C:\'28.30\'},4m:{1J:q.1H.1b(\'4m\'),1C:\'28.30\'},5Y:{1J:q.1H.1b(\'5Y\'),1C:\'28.30\'},5x:{1J:q.1H.1b(\'5x\'),1C:\'28.30\'},5m:{1J:\'&o6; \'+q.1H.1b(\'5m\'),1C:\'2e.3m\'},5z:{1J:\'1. \'+q.1H.1b(\'5z\'),1C:\'2e.3m\'},7p:{1J:\'< \'+q.1H.1b(\'7p\'),1C:\'3y.95\'},3y:{1J:\'> \'+q.1H.1b(\'3y\'),1C:\'3y.bo\'},M:{1J:q.1H.1b(\'M\'),1C:\'M.2O\'},22:{1J:q.1H.1b(\'22\'),1C:\'22.2O\'},V:{1J:q.1H.1b(\'V\'),1n:{V:{1J:q.1H.1b(\'ba\'),1C:\'V.2O\',1R:{2j:\'a\',in:{1J:q.1H.1b(\'ca\'),},2m:{1J:q.1H.1b(\'ba\')}}},6P:{1J:q.1H.1b(\'6P\'),1C:\'V.6P\',1R:{2j:\'a\',2m:{1c:{\'1G\':\'I-1n-V-c9\',\'4K-7o\':1q}}}}}},3b:{1J:q.1H.1b(\'3b\'),1n:{2c:{1J:q.1H.1b(\'jt\'),1C:\'3b.2c\'},5u:{1J:q.1H.1b(\'jx\'),1C:\'3b.5u\'},4s:{1J:q.1H.1b(\'jB\'),1C:\'3b.4s\'},9d:{1J:q.1H.1b(\'jA\'),1C:\'3b.9d\'}}},b3:{1J:q.1H.1b(\'b3\'),1C:\'3K.1Y\'}}},2o:C(){q.1A.iV();q.1A.iN();q.1A.iU();if(q.G.4i.12===0)F;q.$1A=q.1A.ir();q.1A.iQ();q.1A.1F();q.1A.i5();q.1A.ia();q.1A.iz();if(q.G.b5){q.$T.on(\'iZ.I 2s.I 2n.I\',$.1d(q.1R.1A,q))}},ir:C(){F $(\'<3p>\').2f(\'I-1A\').1c({\'id\':\'I-1A-\'+q.2G,\'9c\':\'1A\'})},i5:C(){$.1B(q.G.1A.3a.1n,$.1d(C(i,s){if($.3t(i,q.G.3a)==-1)83 q.G.1A.3a.1n[i]},q))},ia:C(){$.1B(q.G.4i,$.1d(C(i,2g){if(!q.G.1A[2g])F;if(2g===\'22\'){if(q.G.76===O)F;N if(!q.G.76&&q.G.7V===O)F}if(2g===\'M\'){if(q.G.75===O)F;N if(!q.G.75&&q.G.7V===O)F}E 2X=q.G.1A[2g];q.$1A.1F($(\'<li>\').1F(q.1t.2o(2g,2X)))},q))},1F:C(){if(q.G.bf){q.$1A.2f(\'I-1A-oT\');$(q.G.bf).B(q.$1A)}N{q.$2Q.6t(q.$1A)}},iz:C(){if(!q.L.7b())F;if(q.G.bf)F;if(!q.G.iS)F;q.1A.cp();$(q.G.6y).on(\'6b.I.\'+q.2G,$.1d(q.1A.cp,q))},iQ:C(){if(q.L.6M()&&q.G.iO){q.$1A.2f(\'I-1A-bI\')}},iU:C(){if(q.G.4E)F;E 68=q.G.4i.4Q(\'B\');if(68!==-1){q.G.4i.bi(68,1)}},iV:C(){if(q.G.cw.12===0)F;$.1B(q.G.cw,$.1d(C(i,s){E 68=q.G.4i.4Q(s);q.G.4i.bi(68,1)},q))},iN:C(){if(!q.L.6M()||q.G.cv.12===0)F;$.1B(q.G.cv,$.1d(C(i,s){E 68=q.G.4i.4Q(s);q.G.4i.bi(68,1)},q))},cp:C(){E 3U=$(q.G.6y).3U();E 6C=1;if(q.G.6y===1l){6C=q.$2Q.2I().2U}if((3U+q.G.6z)>6C){q.1A.iD(3U,6C)}N{q.1A.iC()}},iD:C(3U,6C){E 2U=q.G.6z+3U-6C;E 2c=0;E 2h=6C+q.$2Q.3n()-32;E 2J=q.$2Q.7P();q.$1A.2f(\'1A-82-2Q\');q.$1A.1O({4g:\'8u\',2J:2J,2U:2U+\'px\',2c:2c});if(3U>2h)$(\'.I-1n-\'+q.2G+\':c2\').3v();q.1A.iJ();q.$1A.1O(\'iH\',(3U<2h)?\'c2\':\'k4\')},iC:C(){q.$1A.1O({4g:\'oC\',2J:\'bj\',2U:0,2c:0,iH:\'c2\'});q.1A.jO();q.$1A.2S(\'1A-82-2Q\')},iJ:C(){E 2U=q.$1A.6c()+q.G.6z;E 4g=\'82\';if(q.G.6y!==1l){2U=(q.$1A.6c()+q.$1A.2I().2U)+q.G.6z;4g=\'8u\'}$(\'.I-1n-\'+q.2G).1B(C(){$(q).1O({4g:4g,2U:2U+\'px\'})})},jO:C(){E 2U=(q.$1A.6c()+q.$1A.2I().2U);$(\'.I-1n-\'+q.2G).1B(C(){$(q).1O({4g:\'8u\',2U:2U+\'px\'})})}}},1v:C(){F{3Q:C(id,2i,2A){q.1v.4Y=O;q.1v.2A=2A;q.1v.2i=2i;q.1v.$el=$(id);q.1v.$4d=$(\'<1i id="I-4d" />\');q.1v.$cE=$(\'<1i id="I-4d-3f" />\').1g(q.1H.1b(\'kD\'));q.1v.$3D=$(\'<3D 1m="22" 1w="22" />\');q.1v.$cE.1F(q.1v.$3D);q.1v.$4d.1F(q.1v.$cE);q.1v.$el.1F(q.1v.$4d);q.1v.$4d.3h(\'I.1v\');q.1v.$3D.3h(\'I.1v\');q.1v.$4d.on(\'oL.I.1v\',$.1d(q.1v.bn,q));q.1v.$4d.on(\'oK.I.1v\',$.1d(q.1v.k6,q));q.1v.$3D.on(\'kR.I.1v\',$.1d(C(e){e=e.7T||e;q.1v.b9(q.1v.$3D[0].5R[0],e)},q));q.1v.$4d.on(\'57.I.1v\',$.1d(C(e){e.2w();q.1v.$4d.2S(\'7k-c0\').2f(\'7k-57\');q.1v.bs(e)},q))},kQ:C(22,e){q.1v.4Y=1q;q.1v.b9(22,e)},bs:C(e){e=e.7T||e;E 5R=e.bG.5R;q.1v.b9(5R[0],e)},b9:C(22,e){if(q.G.7V){q.1v.bL(22);q.1v.kr(22);F}E 4q=!!3l.b6?2a b6():4e;if(3l.b6){q.1v.bL(22);E 1w=(q.1v.1m==\'M\')?q.G.k1:q.G.k2;4q.1F(1w,22)}q.5E.2O();q.1X.2u(\'o1\',e,4q);q.1v.ky(4q,e)},bL:C(22){q.1v.k8(22);if(q.1v.4Y){q.1v.2i=(q.1v.1m==\'M\')?q.G.75:q.G.76;q.1v.2A=(q.1v.1m==\'M\')?q.M.1Y:q.22.1Y}},k8:C(22){q.1v.1m=\'M\';if(q.G.kb.4Q(22.1m)==-1){q.1v.1m=\'22\'}},6V:C(7H,fd){if(7H===O||1s 7H!==\'41\')F fd;$.1B(7H,$.1d(C(k,v){if(v!==4e&&v.4y().4Q(\'#\')===0)v=$(v).2K();fd.1F(k,v)},q));F fd},ky:C(4q,e){if(q.1v.1m==\'M\'){4q=q.1v.6V(q.G.nq,4q);4q=q.1v.6V(q.1v.b7,4q)}N{4q=q.1v.6V(q.G.nr,4q);4q=q.1v.6V(q.1v.bC,4q)}E 2M=2a bq();2M.bw(\'ns\',q.1v.2i);2M.cF("X-n7-n8","bq");2M.fu=$.1d(C(){if(2M.bS==4){E 1f=2M.fr;1f=1f.K(/^\\[/,\'\');1f=1f.K(/\\]$/,\'\');E 2P;52{2P=(1s 1f===\'6Z\'?$.jY(1f):1f)}51(n6){2P={6U:1q}}q.5E.3v();if(!q.1v.4Y){q.1v.$4d.2S(\'7k-57\')}q.1v.2A(2P,q.1v.4Y,e)}},q);2M.dk(4q)},bn:C(e){e.2w();q.1v.$4d.2f(\'7k-c0\')},k6:C(e){e.2w();q.1v.$4d.2S(\'7k-c0\')},nf:C(){q.1v.b7={}},ne:C(1w,1E){q.1v.b7[1w]=1E},nd:C(1w){83 q.1v.b7[1w]},nc:C(){q.1v.bC={}},nw:C(1w,1E){q.1v.bC[1w]=1E},nx:C(1w){83 q.1v.bC[1w]},kr:C(22){q.1v.fz(22,$.1d(C(kw){q.1v.g4(22,kw)},q))},fz:C(22,2A){E 2M=2a bq();E 6A=\'?\';if(q.G.7V.3N(/\\?/)!=\'-1\')6A=\'&\';2M.bw(\'nR\',q.G.7V+6A+\'1w=\'+22.1w+\'&1m=\'+22.1m,1q);if(2M.fy)2M.fy(\'1g/nS; nP=x-nN-nO\');E fi=q;2M.fu=C(e){if(q.bS==4&&q.dv==bt){fi.5E.2O();2A(fl(q.fr))}N if(q.bS==4&&q.dv!=bt){}};2M.dk()},g3:C(bx,2i){E 2M=2a bq();if("nY"in 2M){2M.bw(bx,2i,1q)}N if(1s fX!="1y"){2M=2a fX();2M.bw(bx,2i)}N{2M=4e}F 2M},g4:C(22,2i){E 2M=q.1v.g3(\'nL\',2i);if(!2M){}N{2M.nD=$.1d(C(){if(2M.dv==bt){q.5E.3v();E bA=2i.4o(\'?\');if(!bA[0]){F O}if(!q.1v.4Y){q.1v.$4d.2S(\'7k-57\')}E 2P={9b:bA[0]};if(q.1v.1m==\'22\'){E 2C=bA[0].4o(\'/\');2P.6k=2C[2C.12-1]}q.1v.2A(2P,q.1v.4Y,O)}N{}},q);2M.nK=C(){};2M.1v.nJ=C(e){};2M.cF(\'p0-p1\',22.1m);2M.cF(\'x-qg-qm\',\'qq-qp\');2M.dk(22)}}}},L:C(){F{6M:C(){F/(eQ|eH|eO|ht)/.bE(b8.bb)},7b:C(){F!/(eQ|eH|q3|eO|ht)/.bE(b8.bb)},q0:C(7H){F g8.5w.4y.6e(7H)==\'[41 6f]\'},3z:C(B,he){B=B.K(/[\\6g-\\q7\\qb]/g,\'\');B=B.K(/&5s;/gi,\'\');B=B.K(/<\\/?br\\s?\\/?>/g,\'\');B=B.K(/\\s/g,\'\');B=B.K(/^<p>[^\\W\\w\\D\\d]*?<\\/p>$/i,\'\');B=B.K(/<4R(.*?[^>])>$/i,\'4R\');B=B.K(/<4E(.*?[^>])>$/i,\'4E\');if(he!==O){B=B.K(/<[^\\/>][^>]*><\\/[^>]+>/gi,\'\');B=B.K(/<[^\\/>][^>]*><\\/[^>]+>/gi,\'\')}B=$.3k(B);F B===\'\'},dr:C(5f){if(1s(5f)===\'1y\')F 0;F 5L(5f.K(\'px\',\'\'),10)},n2:C(6H){if(1s 6H==\'1y\')F;if(6H.3N(/^#/)==-1)F 6H;E hm=/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;6H=6H.K(hm,C(m,r,g,b){F r+r+g+g+b+b});E bg=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.5j(6H);F\'qQ(\'+5L(bg[1],16)+\', \'+5L(bg[2],16)+\', \'+5L(bg[3],16)+\')\'},6q:C(el){F $(\'<1i>\').1F($(el).eq(0).8O()).B()},bh:C(el){if($.3t(el.1p,q.G.8F)!==-1){F $(el)}N{F $(el).2q(q.G.8F.4y().3e(),q.$T[0])}},5r:C(el,1c){E $el=$(el);if(1s $el.1c(1c)==\'1y\'){F 1q}if($el.1c(1c)===\'\'){$el.1K(1c);F 1q}F O},4f:C(i,s){E $s=$($.dQ(s));$s.1h(\'.I-7s-3g\').1K(\'1o\').1K(\'1G\');if($s.1h(\'hr, br, 1L, 4R, 4E\').12!==0)F;E 1g=$.3k($s.1g());if(q.L.3z(1g,O)){$s.1u()}},8z:C(){q.gs=q.$T.3U();q.bm=$(3l).3U();if(q.G.9p)q.gq=$(q.G.9p).3U()},bk:C(){if(1s q.8z===\'1y\'&&1s q.bm===\'1y\')F;$(3l).3U(q.bm);q.$T.3U(q.gs);if(q.G.9p)$(q.G.9p).3U(q.gq)},bH:C(){E 3g=1l.3w(\'1j\');3g.3E=\'I-7s-3g\';3g.3x=q.G.6o;F 3g},4Z:C(Q){E 2d=q.G.4N;2d.2N(\'1j\');if(Q.1p==\'8o\')2d.2N(\'a\');$(Q).1h(2d.3c(\',\')).6h(\'1j.I-J-2r\').26().3Y()},6i:C(Q,4Z){E 3u=q;$(Q).2t(C(){if(4Z===1q)3u.L.4Z(q);F $(q).26()});F $(Q)},4I:C(Q,Y,4Z){E 5F;E 3u=q;$(Q).2t(C(){5F=$(\'<\'+Y+\' />\').1F($(q).26());2B(E i=0;i<q.4u.12;i++){5F.1c(q.4u[i].1w,q.4u[i].1E)}if(4Z===1q)3u.L.4Z(5F);F 5F});F 5F},gp:C(){E R=q.J.4a();if(!R)F O;E 2I=q.1V.b4(R);F(2I===0)?1q:O},6T:C(2j){if(1s 2j==\'1y\'){E 2j=q.J.4a();if(!2j)F O}E 2I=q.1V.b4(2j);E 1g=$.3k($(2j).1g()).K(/\\n\\r\\n/g,\'\');F(2I==1g.12)?1q:O},dN:C(){E R=q.$T[0];E 2I=q.1V.b4(R);E 1g=$.3k($(R).B().K(/(<([^>]+)>)/gi,\'\'));F(2I==1g.12)?1q:O},6X:C(R){R=R[0]||R;F R&&q.L.7J(R.1p)},7J:C(Y){if(1s Y==\'1y\')F O;F q.gm.bE(Y)},bB:C(1z,Y){E 2j=$(1z).2q(Y,q.$T[0]);if(2j.12==1){F 2j[0]}F O},9w:C(){F q.bd},gW:C(){q.bd=1q},8U:C(){q.bd=O},4p:C(el){if(!el){F O}if($(el).dL(\'.I-T\').12===0||$(el).3i(\'I-T\')){F O}F el},h8:C(){F q.L.4S([\'dK\',\'di\',\'cS\',\'cR\',\'cI\',\'cH\'])},4S:C(1p){E 1r=q.J.67();E 1z=q.J.3B();if($.bc(1p)){E cJ=0;$.1B(1p,$.1d(C(i,s){if(q.L.cM(1z,1r,s)){cJ++}},q));F(cJ===0)?O:1q}N{F q.L.cM(1z,1r,1p)}},cM:C(1z,1r,1p){1p=1p.lF();F 1r&&1r.1p===1p?1r:1z&&1z.1p===1p?1z:O},lG:C(){F(q.L.1P(\'2E\')&&5L(q.L.1P(\'bp\'),10)<9)?1q:O},lJ:C(){F(q.L.1P(\'2E\')&&5L(q.L.1P(\'bp\'),10)<10)?1q:O},gj:C(){F!!b8.bb.1T(/lB\\/7\\./)},1P:C(1P){E 4U=b8.bb.3e();E 1T=/(de)[\\/]([\\w.]+)/.5j(4U)||/(hw)[ \\/]([\\w.]+)/.5j(4U)||/(7q)[ \\/]([\\w.]+).*(db)[ \\/]([\\w.]+)/.5j(4U)||/(7q)[ \\/]([\\w.]+)/.5j(4U)||/(kX)(?:.*bp|)[ \\/]([\\w.]+)/.5j(4U)||/(2E) ([\\w.]+)/.5j(4U)||4U.4Q("l3")>=0&&/(dc)(?::| )([\\w.]+)/.5j(4U)||4U.4Q("kZ")<0&&/(4b)(?:.*? dc:([\\w.]+)|)/.5j(4U)||[];if(1P==\'db\')F(1s 1T[3]!=\'1y\')?1T[3]==\'db\':O;if(1P==\'bp\')F 1T[2];if(1P==\'7q\')F(1T[1]==\'hw\'||1T[1]==\'de\'||1T[1]==\'7q\');if(1T[1]==\'dc\')F 1P==\'2E\';if(1T[1]==\'de\')F 1P==\'7q\';F 1P==1T[1]},bF:C(ev,es,2I){E i=ev.4Q(es,2I);F i>=0?i:O},d8:C(){E $31=$(\'B\');E 7u=3l.7P;if(!7u){E cZ=1l.lk.lp();7u=cZ.4s-8d.mO(cZ.2c)}E kP=1l.31.kC<7u;E by=q.L.kv();$31.1O(\'bI\',\'k4\');if(kP)$31.1O(\'hh-4s\',by)},kv:C(){E $31=$(\'31\');E 7G=1l.3w(\'1i\');7G.3E=\'I-hf-j0\';$31.1F(7G);E by=7G.m8-7G.kC;$31[0].m6(7G);F by},bJ:C(){$(\'B\').1O({\'bI\':\'\',\'hh-4s\':\'\'});$(\'31\').1u(\'I-hf-j0\')}}}};$(3l).on(\'2R.eN.I\',C(){$(\'[1f-eN="I"]\').I()});47.5w.3Q.5w=47.5w})(o7);',62,1669,'||||||||||||||||||||||||||this|||||||||||html|function||var|return|opts||redactor|selection|replace|utils|image|else|false||node|block||editor||link|||tag||||length||range||||||modal|get|attr|proxy|code|data|text|find|div|span|key|document|type|dropdown|style|tagName|true|parent|typeof|button|remove|upload|name|clean|undefined|current|toolbar|each|func|keydown|value|append|class|lang|tidy|title|removeAttr|img|linebreaks|next|css|browser|target|observe|sync|match|set|caret|formatted|core|insert|blocks||btn|file|nodes||buffer|contents||inline|blockquote|new|start|left|tags|list|addClass|btnName|end|url|element|href|RegExp|out|focus|build|len|closest|marker|keyup|replaceWith|setCallback|textarea|preventDefault|item|click|linkify|callback|for|arr|settings|msie|pre|uuid|tabifier|offset|width|val|label|xhr|push|show|json|box|load|removeClass|sel|top|paragraphize|setStart|btnObject|td|last|format|body|||||||||formatting|alignment|join|restore|toLowerCase|placeholder|space|off|hasClass|keyCode|trim|window|toggle|height|save|ul|tooltip|autosave|pos|inArray|self|hide|createElement|innerHTML|indent|isEmpty|setTimeout|getCurrent|CodeMirror|input|className|after|imageBox|verified|first|re|line|insertNode|matches|search|children|setEnd|init|font|point|rel|scrollTop|script|table|getBlocks|unwrap|execCommand||object|option|collapse|options|||Redactor|ctrl|section|getBlock|mozilla|deniedTags|droparea|null|removeEmpty|position|del|buttons|close|resizeHandle|addRange|italic|bold|split|isRedactorParent|formData|clearUnverified|right|src|attributes|regexps|child|substr|toString|allowedTags|command|margin|blockElem|getSelection|source|modalBox|prev|cmd|replaceToTag|resize|aria|frag|wrapper|inlineTags|htmls|orgn|indexOf|iframe|isCurrentOrParent|allowedAttr|ua|elem|arrow|keys|direct|removeInlineTags||catch|try|collapsed|setAfter|deleteContents|while|drop|BR||getMarkerAsHtml|cont|linkProtocol|contenteditable|pasteBox|str|align|meta|strong|exec|isFunction|editter|unorderedlist|links|https|none|tmp|removeEmptyAttr|nbsp|br1|center|LI|prototype|underline|removeDataAttr|orderedlist|replaceStyles|replaceTags|paste|attributesRemove|progress|replacement|toggleType|touchstart|tab|allowed|lastNode|parseInt|node1|quot|nodeValue|th|replaceDivs|files|emptyHtml|lastList|inlines|currentList|currentLevel|methods|deleted|wrap|||templateName|marginTop|form|||getParent|index|containerTag|charAt|scroll|innerHeight|num|call|String|u200B|not|replaceWithContents|prop|filename|getRangeAt|shortcuts|break|invisibleSpace|params|getOuterHtml|visual|shiftKey|prepend|instance|preSpaces|SPAN|insertBreakLine|toolbarFixedTarget|toolbarFixedTopOffset|mark|Insert|boxTop|module|shift|TD|removeComments|hex|getNodes|metaKey|figure|removeWithoutAttr|isMobile|display|tr|unlink|getMarker|mousedown|tabindex|isEndOfElement|error|getHiddenFields|editorDiv|isBlock|video|string|ENTER|vimeo|youtube||modalOverlay|imageUpload|fileUpload|focn|startNode|dropdowns|decoration|isDesktop|strike|posFromIndex|endRange|float|getEvent|level|embed|possible|drag|sub|parHtml|www|disabled|outdent|webkit|getTabs|invisible|z0|windowWidth|outerHTML|blocksSize|keyPosition|dropact|select|rangeCount|rtePaste|hideAll|pattern|extend|boundaryRange|scrollDiv|obj|weight|isBlockTag|_blank|edit|action|handler|toggleClass|innerWidth|sup|setVerified|cloneRange|originalEvent|which|s3|hideResize|listParent|figcaption|blank|alt|appendChild|fixed|delete|BACKSPACE|tmpList|modif|header|100|DIV|imageResizer|tagblock|tmpLi|Math|event|resizer|setClass|blurClickedElement|setMode|attrs|items|returnValue|inserted|codemirror|PRE|removeMarkers|blockLevelElements|plugins|http|linkmarker|absolute|focusNode|Delete|imageFloatMargin|onPaste|saveScroll|act|classSize|replaceParagraphsToBr|UL|tagout|alignmentTags|targetTouches|newLevel|isRemoveInline|param|ftp|cleanlevel|clear|OL|clone|imageMargin|DELETE|icon|cite|removeAllRanges|disableSelectAll|lastLevel|createTextNode|modalClose|audio|active|||createRange|convertVideoLinks|tabber|decrease|||||closeHandler|filelink|role|justify|modalHeader|small|selectElement|character|modalFooter|selectNodeContents|rebuffer|undo|autosaveInterval|inputUrl|amp|scrollTarget|setActive|Add|addProperties|events|ctrlKey|isMobileUndoRedo|isSelectAll|insertDblBreakLine|exceptTags|counter||size|node2|singleLine|apply|Array|case|Header|setStartAfter|endNode|addEvent|methodVal|createDocumentFragment|firstChild|autosaveFields|isContainerTable|enable|onSync|formatblock|x200b|replaceToParagraph|eventName|parentA|blockHtml|tabAsSpaces|u00a0|checked|re2|convertLinks|editorHtml|selectionMarkers|com|before|SPACE|nodeType|redo|isTextarea|marginRight|onClick|indentValue|marginLeft|marginBottom|imageFloat|pageY|property|getPlainText|moveToPoint|enterKey|prev2|createTextRange|caretRangeFromPoint|normalizeLists|caretPositionFromPoint|getOffset|encodeEntities|cloned|images|classname|parentEl|deleteProperties|mouseover|mouseout|IMG|substring|safes|isEnabled|formatWrap|formatListToBlockquote|minHeight|bind|maxHeight|caretRange|BLOCKQUOTE|link_new_tab|callbacks|samp|fixEmptyIndent|wrapperHtml|matchContainers|insertInIe|kbd|windowHeight|appendTo|prevList|spaces|modalBody|mso|showOnDesktop|onPasteTidy|clearStyle|ESC|horizontalrule|getOffsetOfElement|activeButtons|FormData|imageFields|navigator|traverseFile|link_insert|userAgent|isArray|selectAll||toolbarExternal|result|getAlignmentElement|splice|auto|restoreScroll|codeLength|saveBodyScroll|onDrag|increase|version|XMLHttpRequest||onDrop|200|special|regex|open|method|scrollbarWidth|specialKey|s3file|isTag|fileFields|placeTag|test|strpos|dataTransfer|createSpaceElement|overflow|enableBodyScroll|iframeEnd|setConfig|iframeStart|firstFound|endOffset|br2|endContainer|insertBreakLineProcessing|readyState|setBefore|curLang|extra|filter|convertImageLinks|mailto|inputText|hover|convertUrlLinks|visible|inValues|setDropdownProperties|setDropdownAttr|outValues|isCurrent|footer|inactive|link_edit|isDelete|addDropdown|allowedAttrData|allowedAttrTags|closeTooltip|activeButtonsStates||quote|setInactiveAll|currentEl|buttonsSize|createButton|isOrderedCmdUnordered|Column|observeScroll|isUnorderedCmdOrdered|listTag|linkSize|slice|regexB|buttonsHideOnMobile|buttonsHide|showOnMobile|createCancelButton|createActionButton|highContrast|addCallback|image_position|URL|placeholdler|setRequestHeader|getTextFromHtml|H6|H5|matched|tagsEmpty|dfn|isCurrentOrParentOne|attrAllowed|Link|headers|add|H4|H3|saveFormTags|convertInline|clearUnverifiedRemove|verifiedTags|listType|listsIds|documentElementRect|formatTableWrapping|content|headTag|count|modules|autosaveName|autosaveOnChange|direction|disableBodyScroll|setAfterOrBefore|fonts|safari|rv||opr|RedactorPlugins|getModuleMethods|syncCode|H2|setFormat|send||removeFormat|TH|isP|imageResizable|imageEditable|normalize|htmlIe||address|status|imageDelete|TAB|isEndOfTable|Table|nodeToCaretPositionFromPoint|rTags|ratio|imageDisplay|selectionStart|selectionEnd|enlargeOffset|removeSpaces|markerLength|showCode|H1|parents|htmlLength|isEndOfEditor|isFocused|redactorImageLink|parseHTML|one|dropdownWidth|formattingAdd|dropdownObject|Row|DOWN|commentsMatches|container|ownLine|head|getText|contOwnLine|tfoot|parentNode|219|BODY|thead|getInlines|hotkeysShiftNums|suffix|finalNodes|cleanTag|setMarker|tbody|startOffset|finish|setOffset|getNodesMarker|paragraphizeBlocks|221||||duplicate|onClickCallback||offsetNode|needle|createTooltip|setEvent|haystack|ie11PasteFrag|disableIeLinks|ie11FixInserting|EndToEnd|setEndPoint|RIGHT|keydownStop|disableMozillaEditing|aside|formatConvert|formatRemoveSameChildren|iPod|args|switch|_this|orgo|strikethrough|tools|BlackBerry|through|iPhone|lastChild|article|savedSel|blocksMatch|execHtml|scope|htmlFixMozilla|haspopup|the|beforekey|||||||||||afterkey|htmlWithoutClean||fullscreen|indented|setEventDropUpload|cleanStyleOnEnter|that|insertParagraph|exitFromBlockquote|decodeURIComponent|replaceDivToParagraph||codeKeydownCallback|tabKey|origHandler|responseText|replaceDivToBreakLine|setEventDrop|onreadystatechange|dbl|stopPropagation|area|overrideMimeType|s3executeOnSignedUrl|arguments|dragImageUpload|insertAfterLastElement|setEvents|insertNewLine|dragFileUpload|onTab|onArrowDown|blur|checkKeyEvents|CTRL|META|ALT|checkEvents|isBlured|focusEnd|stop|setHelpers|formatMultiple|HR|SHIFT|addArrowsEvent|focusCallback|XDomainRequest|setupSelectAll|codeKeyupCallback|LEFT_WIN|altKey|createMarkers|s3createCORSRequest|s3uploadToS3|hotkeysSpecialKeys|setupBuffer|Function|Object|internal|textareaIndenting|onPasteExtra|choose|Mso|setInactive|setActiveInVisual|tempEnd|tempStart||isIe11|modified|indenting|reIsBlock|Center|replaceSelection|isStartOfElement|saveTargetScroll|bmso|saveEditorScroll||clearInterval|removeData|pasteHTML|Video|eventNamespace|Align|destroy|all|indexFromPos|matchBlocks|newTag|replaceDivsToBr|restoreFormTags|onSet|matchBR|savePreFormatting|getPreCode|getOnlyImages|restoreSelectionMarker|saveCodeFormatting|removeDirtyStyles|isSingleLine|onPasteIeFixLinks|setSelectionRange|Code|setInactiveInCode|showVisual|anchor|enableSelectAll|setValue|startSync|onPasteRemoveSpans|onPasteRemoveEmpty|||||||onChange|isCurrentOrParentHeader|selected|onPasteWord|editerWidth|showEdit|loadResizableControls|removeEmptyTags|scrollbar|opacity|padding|15px|cleanSpaces|loadEditableControls|Head|shorthandRegex|walker|increaseLists|removeInvisibleSpace|subscript||foco|Android|replaced|superscript|chrome|increaseText|increaseBlocks|decreaseLists|decreaseBlocks|to|fixImageSourceAfterDrop|inside|imageLink|buttonSave|nofollow|imagePosition|floatValue|buttonDelete|_delete|pastePlainText|FIGCAPTION|Apple|Image|700|floating|linkNofollow|Right|moveResize|Left|round|stopResize|startResize|pageX|chars|update|setFloating|setResizable|formatCollapsed|onShiftEnter|setFormattingTags|replaceElement|setTitle|setContent|getTemplate|loadButtons|alignElement|template|||||jsxhr|spans|removeEmptyListInTable|setDraggable|isNeedReplaceElement|setText||createDeleteButton|setButtonsWidth|bindModuleMethods|createContainer||cancel|setEnter|draggable|handle|isLinebreaksOrNoBlocks|setBlocks|setFixed|map|setMultiple|observeScrollDisable|observeScrollEnable|setCollapsed|formatTags|getPrev|visibility|anchorNode|setDropdownsFixed|newTd|commonAncestorContainer|fadeOut|hideButtonsOnMobile|toolbarOverflow|checkbox|setOverflow|success|toolbarFixed|fieldset|isButtonSourceNeeded|hideButtons|loadTemplates|imageEdit|callbackName|mouseup|measure|setEditable|paragraph|removeAttrs|linkTooltip|removeParagraphsInLists|getSafesComments|restoreSafes|lineAfter|Color|setupAllowed|header1|showTooltip|addToAllowed|aUnlink|aEdit|removeFromDenied|Edit|removeTags|aLink|getSafes|getTooltipPosition|here|removeAttrGetRemoves|Drop|replaceBreaksToParagraphs|properties|enableEvents|shortcutsAdd|align_left|createPasteBox|freeze|buildOverlay|align_center|loadModules|loadOptions|align_justify|align_right|disableEvents|header5|lineBefore|replaceBreaksToNewLines|png|header2|header3|cleanOnPaste|List|destroyed|header4|gif|unsetDropdownsFixed|contrast|textNode|elements|600|xn|location|thref|createContainerBox|insertAfter|parseJSON|isExceptLastOrFirst|setNodesMarker|imageUploadParam|fileUploadParam|_moz_dirty|hidden|setCodeAndCall|onDragLeave|createTextarea|getType|setFocus|objects|imageTypes|insertInOthersBrowsers|getUndo|fromElement|startPointNode|cleanUrl|empty|run|getRedo|fromTextarea|lastFound|re3|langs|startContainer|removeNodesMarkers|getInlinesTags|s3uploadFile|setEndBefore|setForce|getTextareaName|measureScrollbar|signedURL|regexp|sendData|loadContent|keyupStop|isKey|clientWidth|upload_label|buttonText|enableEditor|getData|callEditor|lastBlock|getLastBlock|loadEditor|buttonInsert|setRedo|formatEmpty|setOptions|isOverflowing|directUpload|change|formatBlockquote|convertImages|dir|setUndo|pop|opera|drop_file_here|compatible|UP|ltr|VERSION|trident|cut|docs|sid|hgroup|down|guid|rowspan|home|Name|Download|105|math|removePhp|uploadImageField||legend|documentElement|textContent|innerText|104|download|getBoundingClientRect|stripTags|savePreCode|up||Alignment|Open|colspan|youtu|Anchor|fake|Or|Trident|Underline|LEFT|10px|toUpperCase|isOldIe|Choose|or_choose|isLessIe10|jpe|such|post|enableInlineTableEditing|setToPoint|Infinity|nextNode|SHOW_TEXT|AutoUrlDetect|done|ajax|112|reg|No|107|enableObjectResizing|strict|1000|getCoords|setInterval|111|Horizontal|removeChild|setAwesome|offsetWidth|Justify|addFirst|addBefore|Rule|110|109|removeIcon|autosaveError|createTreeWalker|NodeFilter|caretOffset|setStartBefore|disable|changeIcon|setEndAfter|u2122|trade|application|blurCallback|WordDocument|addAfter|TEXTAREA|sdata|getOwnPropertyNames|converted|xml|1strike|shapes|merge|Deleted|115|applet|spacerun|yes|floor|use|113|u2026|hellip|u2014|101|abs|106|u00a9|copy|102|103|u2010|dash|toggleAttr|setAttr|toggleData|setData|mdash|slevel|hexToRgb|Below|host|noscript|err|Requested|With|frame|insertHtml|insert_column_left|clearFileFields|removeImageFields|addImageFields|clearImageFields|insert_row_below|php|addBack|insert_row_above|insert_table||500|frameborder|281|Above|uploadImageFields|uploadFileFields|POST|createLink|insertedLink|deletedLink|addFileFields|removeFileFields|context|enter|FOOTER|ASIDE|0px|onload|optional|222|220|rows|delete_table|onprogress|onerror|PUT|_|user|defined|charset|fromPoint|GET|plain|extractContents|insert_column_right|delete_row|fromCharCode|Key|withCredentials|delete_column|allowfullscreen|uploadStart|times|Close|9999px|overlay|bull|jQuery|labelledby|dialog|cursor|Outdent|move|pasteBefore|Quote|fast|bodyOveflow|unselectable|addButton|specified|backcolor||fontcolor||Font|Back|toggleActive||Ordered|modalClosed|Bold|Unordered|hasOwnProperty|Normal|Indent|getNext|nextSibling|previousSibling|relative|Unlink|Cancel|Save|HTML|ARTICLE|player|grep|dragleave|dragover|1500|fadeIn|focusin|modalOpened|email|outerHeight|20px|external|getModal|frameset|Formatting|createTabber|addTab|addTemplate|Content|Type|SECTION|119|Embed|getObject|getBox|getEditor|ADDRESS|118|117|getValue|DT|DD|OUTPUT|getElement|getTextarea|HEADER|Email|Text|121|max|dropdownShow|web|video_html_code|Callback|getToolbar|_data|120|namespace|listSelections|setSelection|menu||esc|cleanEmptyParagraph|capslock|pause|summary|details|pageup|pagedown|getOnlyLinksAndImages|Upload|File|nav|Vimeo|alignleft|DL|116|setSize|refresh|setCursor|Youtube|backspace|alignright|aligncenter|syncBefore|jpeg|ins|Ss|f10|isString|114|columns|iPad|cssText|getHtml|Columns|u200D|189|188|add_head|uFEFF|TR|removeStyle|removeStyleRule|nodeToPoint|amz|192|clientX|Rows|clientY|191|acl|toggleStyle|190|read|public|insertHTML|imageUploadError|delete_head|f12|705|144|numlock|image_web_link|145|123|Web|dropdownHide|122|replaceWithHtml|f11|fileUploadError|dragstart|mousemove|187|None|Position|Title|cloneContents|Italic|dropdownShown|rgb|186|173|touchmove|touchend'.split('|'),0,{})) diff --git a/offline.php b/offline.php index 0e284a858218162e3d6b0524b6403ed4b6632d3d..20d9b46ffde8bec40d8a63a51d3bc7fd83744b2f 100644 --- a/offline.php +++ b/offline.php @@ -25,7 +25,7 @@ require(CLIENTINC_DIR.'header.inc.php'); <div id="landing_page"> <?php if(($page=$cfg->getOfflinePage())) { - echo $page->getBody(); + echo $page->getBodyWithImages(); } else { echo '<h1>'.__('Support Ticket System Offline').'</h1>'; } diff --git a/profile.php b/profile.php index 47c100aef5fe46f44c1072e0248bc47058f9f047..db501ced39718803bc83db75139159b9f3a82915 100644 --- a/profile.php +++ b/profile.php @@ -19,6 +19,12 @@ require 'secure.inc.php'; require_once 'class.user.php'; + +// Check if User is Guest. If so, redirect them back to ticket page to +// prevent Account Takeover. +if ($thisclient->isGuest()) + Http::redirect('tickets.php'); + $user = User::lookup($thisclient->getId()); if ($user && $_POST) { diff --git a/pwreset.php b/pwreset.php index 2461ec3cf6971a736cf5821099a890476963c39f..bc9ef6f29d913cb92ea8c8f2a118225cb449dea8 100644 --- a/pwreset.php +++ b/pwreset.php @@ -73,12 +73,8 @@ elseif ($_GET['token']) { else Http::redirect('index.php'); } -elseif ($cfg->allowPasswordReset()) { - $banner = __('Enter your username or email address below'); -} else { - $_SESSION['_staff']['auth']['msg']=__('Password resets are disabled'); - return header('Location: index.php'); + $banner = __('Enter your username or email address below'); } $nav = new UserNav(); diff --git a/scp/css/login.css b/scp/css/login.css index 71d6cb7fcedac7dbbb217e0d1d977a14efd711ce..3bf8e12c5532ebdace51e11b17357dfbf50b0abd 100644 --- a/scp/css/login.css +++ b/scp/css/login.css @@ -353,3 +353,6 @@ input[type=password] { padding: 5px; font-size: 0.75em; } +.hidden { + display: none; +} diff --git a/scp/css/scp.css b/scp/css/scp.css index d747a7a08c5cd6282ef3f756383928a4859e5723..bfd36840bf5c32c52da2fb88794f577851c7f2cb 100644 --- a/scp/css/scp.css +++ b/scp/css/scp.css @@ -2147,7 +2147,7 @@ h2 > i.help-tip { overflow:hidden; margin:0; background-image:url(../images/kb_large_folder.png), url(../images/kb_category_bg.png); - background-position:0 50%, bottom left; + background-position:0% 0%, top left; background-repeat:no-repeat, repeat-x; border-bottom:1px solid #ddd; } @@ -3575,6 +3575,10 @@ select { -moz-border-radius: 4px; } +#cannedResp { + margin-bottom: 10px; +} + a.attachment { padding-left: 1.2em; display: block; diff --git a/scp/departments.php b/scp/departments.php index c1d860488f991d92291f73c0102bf16e0647964a..cb07697370fdefc681839ed7a59f81da10ab2daa 100644 --- a/scp/departments.php +++ b/scp/departments.php @@ -19,118 +19,210 @@ $dept=null; if($_REQUEST['id'] && !($dept=Dept::lookup($_REQUEST['id']))) $errors['err']=sprintf(__('%s: Unknown or invalid ID.'), __('department')); -if($_POST){ - switch(strtolower($_POST['do'])){ - case 'update': - if(!$dept){ - $errors['err']=sprintf(__('%s: Unknown or invalid'), __('department')); - }elseif($dept->update($_POST,$errors)){ - $msg=sprintf(__('Successfully updated %s.'), - __('this department')); - }elseif(!$errors['err']){ - $errors['err'] = sprintf('%s %s', - sprintf(__('Unable to update %s.'), __('this department')), - __('Correct any errors below and try again.')); - } - break; - case 'create': - $_dept = Dept::create(); - if(($_dept->update($_POST,$errors))){ - $msg=sprintf(__('Successfully added %s.'),Format::htmlchars($_POST['name'])); - $_REQUEST['a']=null; - }elseif(!$errors['err']){ - $errors['err']=sprintf('%s %s', - sprintf(__('Unable to add %s.'), __('this department')), - __('Correct any errors below and try again.')); - } - break; - case 'mass_process': - if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) { - $errors['err'] = sprintf(__('You must select at least %s.'), - __('one department')); - }elseif(in_array($cfg->getDefaultDeptId(),$_POST['ids'])) { - $errors['err'] = __('You cannot disable/delete a default department. Select a new default department and try again.'); - }else{ - $count=count($_POST['ids']); - switch(strtolower($_POST['a'])) { - case 'make_public': - $sql='UPDATE '.DEPT_TABLE.' SET ispublic=1 ' - .' WHERE dept_id IN ('.implode(',', db_input($_POST['ids'])).')'; - if(db_query($sql) && ($num=db_affected_rows())){ - if($num==$count) - $msg=sprintf(__('Successfully made %s PUBLIC'), - _N('selected department', 'selected departments', $count)); - else - $warn=sprintf(__( - /* Phrase will read: - <a> of <b> <selected objects> made PUBLIC */ - '%1$d of %2$d %3$s made PUBLIC'), $num, $count, - _N('selected department', 'selected departments', $count)); - } else { - $errors['err']=sprintf(__('Unable to make %s PUBLIC.'), - _N('selected department', 'selected departments', $count)); - } - break; - case 'make_private': - $sql='UPDATE '.DEPT_TABLE.' SET ispublic=0 ' - .' WHERE dept_id IN ('.implode(',', db_input($_POST['ids'])).') ' - .' AND dept_id!='.db_input($cfg->getDefaultDeptId()); - if(db_query($sql) && ($num=db_affected_rows())) { - if($num==$count) - $msg = sprintf(__('Successfully made %s PRIVATE'), - _N('selected department', 'selected epartments', $count)); - else - $warn = sprintf(__( - /* Phrase will read: - <a> of <b> <selected objects> made PRIVATE */ - '%1$d of %2$d %3$s made PRIVATE'), $num, $count, + if($_POST){ + switch(strtolower($_POST['do'])){ + case 'update': + if(!$dept){ + $errors['err']=sprintf(__('%s: Unknown or invalid'), __('department')); + }elseif($dept->update($_POST,$errors)){ + if ($_POST["status"] != __('Active')) + Dept::clearInactiveDept($dept->getId()); + + $msg=sprintf(__('Successfully updated %s.'), + __('this department')); + }elseif(!$errors['err']){ + $errors['err'] = sprintf('%s %s', + sprintf(__('Unable to update %s.'), __('this department')), + __('Correct any errors below and try again.')); + } + break; + case 'create': + $_dept = Dept::create(); + if(($_dept->update($_POST,$errors))){ + $msg=sprintf(__('Successfully added %s.'),Format::htmlchars($_POST['name'])); + $_REQUEST['a']=null; + }elseif(!$errors['err']){ + $errors['err']=sprintf('%s %s', + sprintf(__('Unable to add %s.'), __('this department')), + __('Correct any errors below and try again.')); + } + break; + case 'mass_process': + if(!$_POST['ids'] || !is_array($_POST['ids']) || !count($_POST['ids'])) { + $errors['err'] = sprintf(__('You must select at least %s.'), + __('one department')); + }elseif(in_array($cfg->getDefaultDeptId(),$_POST['ids'])) { + $errors['err'] = __('You cannot disable/delete a default department. Select a new default department and try again.'); + }else{ + $count=count($_POST['ids']); + switch(strtolower($_POST['a'])) { + case 'make_public': + $sql='UPDATE '.DEPT_TABLE.' SET ispublic=1 ' + .' WHERE dept_id IN ('.implode(',', db_input($_POST['ids'])).')'; + if(db_query($sql) && ($num=db_affected_rows())){ + if($num==$count) + $msg=sprintf(__('Successfully made %s PUBLIC'), + _N('selected department', 'selected departments', $count)); + else + $warn=sprintf(__( + /* Phrase will read: + <a> of <b> <selected objects> made PUBLIC */ + '%1$d of %2$d %3$s made PUBLIC'), $num, $count, + _N('selected department', 'selected departments', $count)); + } else { + $errors['err']=sprintf(__('Unable to make %s PUBLIC.'), _N('selected department', 'selected departments', $count)); - } else { - $errors['err'] = sprintf(__('Unable to make %s private. Possibly already private!'), - _N('selected department', 'selected departments', $count)); - } - break; - case 'delete': - //Deny all deletes if one of the selections has members in it. - $sql='SELECT count(staff_id) FROM '.STAFF_TABLE - .' WHERE dept_id IN ('.implode(',', db_input($_POST['ids'])).')'; - list($members)=db_fetch_row(db_query($sql)); - if($members) - $errors['err']=__('Departments with agents can not be deleted. Move the agents first.'); - else { - $i=0; - foreach($_POST['ids'] as $k=>$v) { - if($v!=$cfg->getDefaultDeptId() && ($d=Dept::lookup($v)) && $d->delete()) - $i++; } - if($i && $i==$count) - $msg = sprintf(__('Successfully deleted %s.'), + break; + case 'make_private': + $sql='UPDATE '.DEPT_TABLE.' SET ispublic=0 ' + .' WHERE dept_id IN ('.implode(',', db_input($_POST['ids'])).') ' + .' AND dept_id!='.db_input($cfg->getDefaultDeptId()); + if(db_query($sql) && ($num=db_affected_rows())) { + if($num==$count) + $msg = sprintf(__('Successfully made %s PRIVATE'), + _N('selected department', 'selected epartments', $count)); + else + $warn = sprintf(__( + /* Phrase will read: + <a> of <b> <selected objects> made PRIVATE */ + '%1$d of %2$d %3$s made PRIVATE'), $num, $count, + _N('selected department', 'selected departments', $count)); + } else { + $errors['err'] = sprintf(__('Unable to make %s private. Possibly already private!'), _N('selected department', 'selected departments', $count)); - elseif($i>0) - $warn = sprintf(__( - /* Phrase will read: - <a> of <b> <selected objects> deleted */ - '%1$d of %2$d %3$s deleted'), $i, $count, + } + break; + case 'enable': + $depts = Dept::objects()->filter(array( + 'id__in'=>$_POST['ids'], + ))->exclude(array( + 'id'=>$cfg->getDefaultDeptId() + )); + foreach ($depts as $d) { + $d->setFlag(Dept::FLAG_ARCHIVED, false); + $d->setFlag(Dept::FLAG_ACTIVE, true); + $filter_actions = FilterAction::objects()->filter(array('type' => 'dept', 'configuration' => '{"dept_id":'. $d->getId().'}')); + FilterAction::setFilterFlag($filter_actions, 'dept', false); + if($d->save()) + $num++; + } + + if ($num > 0) { + if($num==$count) + $msg = sprintf(__('Successfully enabled %s'), + _N('selected department', 'selected departments', $count)); + else + $warn = sprintf(__('%1$d of %2$d %3$s enabled'), $num, $count, + _N('selected department', 'selected departments', $count)); + } else { + $errors['err'] = sprintf(__('Unable to enable %s'), _N('selected department', 'selected departments', $count)); - elseif(!$errors['err']) - $errors['err'] = sprintf(__('Unable to delete %s.'), + } + break; + case 'disable': + $depts = Dept::objects()->filter(array( + 'id__in'=>$_POST['ids'], + ))->exclude(array( + 'id'=>$cfg->getDefaultDeptId() + )); + foreach ($depts as $d) { + $d->setFlag(Dept::FLAG_ARCHIVED, false); + $d->setFlag(Dept::FLAG_ACTIVE, false); + $filter_actions = FilterAction::objects()->filter(array('type' => 'dept', 'configuration' => '{"dept_id":'. $d->getId().'}')); + FilterAction::setFilterFlag($filter_actions, 'dept', true); + if($d->save()) { + $num++; + //set dept_id to default for topics/emails using disabled dept + Dept::clearInactiveDept($d->getId()); + } + } + if ($num > 0) { + if($num==$count) + $msg = sprintf(__('Successfully disabled %s'), + _N('selected department', 'selected departments', $count)); + else + $warn = sprintf(__('%1$d of %2$d %3$s disabled'), $num, $count, + _N('selected department', 'selected departments', $count)); + } else { + $errors['err'] = sprintf(__('Unable to disable %s'), _N('selected department', 'selected departments', $count)); - } - break; - default: - $errors['err']=sprintf('%s - %s', __('Unknown action'), __('Get technical help!')); + } + break; + case 'archive': + $depts = Dept::objects()->filter(array( + 'id__in'=>$_POST['ids'], + ))->exclude(array( + 'id'=>$cfg->getDefaultDeptId() + )); + foreach ($depts as $d) { + $d->setFlag(Dept::FLAG_ARCHIVED, true); + $d->setFlag(Dept::FLAG_ACTIVE, false); + $filter_actions = FilterAction::objects()->filter(array('type' => 'dept', 'configuration' => '{"dept_id":'. $d->getId().'}')); + FilterAction::setFilterFlag($filter_actions, 'dept', true); + if($d->save()) { + $num++; + //set dept_id to default for topics/emails using archived dept + Dept::clearInactiveDept($d->getId()); + } + } + if ($num > 0) { + if($num==$count) + $msg = sprintf(__('Successfully archived %s'), + _N('selected department', 'selected departments', $count)); + else + $warn = sprintf(__('%1$d of %2$d %3$s archived'), $num, $count, + _N('selected department', 'selected departments', $count)); + } else { + $errors['err'] = sprintf(__('Unable to archive %s'), + _N('selected department', 'departments', $count)); + } + break; + case 'delete': + //Deny all deletes if one of the selections has members in it. + $sql='SELECT count(staff_id) FROM '.STAFF_TABLE + .' WHERE dept_id IN ('.implode(',', db_input($_POST['ids'])).')'; + list($members)=db_fetch_row(db_query($sql)); + if($members) + $errors['err']=__('Departments with agents can not be deleted. Move the agents first.'); + else { + $i=0; + foreach($_POST['ids'] as $k=>$v) { + if($v!=$cfg->getDefaultDeptId() && ($d=Dept::lookup($v)) && $d->delete()) + $i++; + } + if($i && $i==$count) + $msg = sprintf(__('Successfully deleted %s.'), + _N('selected department', 'selected departments', $count)); + elseif($i>0) + $warn = sprintf(__( + /* Phrase will read: + <a> of <b> <selected objects> deleted */ + '%1$d of %2$d %3$s deleted'), $i, $count, + _N('selected department', 'selected departments', $count)); + elseif(!$errors['err']) + $errors['err'] = sprintf(__('Unable to delete %s.'), + _N('selected department', 'selected departments', $count)); + } + break; + } } - } - break; - default: - $errors['err']=__('Unknown action'); - break; + break; + default: + $errors['err']=__('Unknown action'); + break; + } } -} $page='departments.inc.php'; $tip_namespace = 'staff.department'; -if($dept || ($_REQUEST['a'] && !strcasecmp($_REQUEST['a'],'add'))) { +if ($_REQUEST['a'] && $_REQUEST['a'] == 'export') { + if (!Dept::export($dept)) + $errors['err'] = sprintf(__('Unable to export %s.'), __('Department')); +} elseif ($dept || ($_REQUEST['a'] && !strcasecmp($_REQUEST['a'],'add'))) { + if ($dept && ($pid=$dept->getParent()) && !$pid->isActive()) + $warn = sprintf(__('%s is assigned a %s that is not active.'), __('Department'), __('Parent Department')); + $page='department.inc.php'; } diff --git a/scp/filters.php b/scp/filters.php index 9e4d63193bfa370b53ca3135d5c2b16c5d7e20ae..23bbe23e37ae0721eccbf43288dbfc6a77ab0e75 100644 --- a/scp/filters.php +++ b/scp/filters.php @@ -31,6 +31,8 @@ if($_POST){ if(!$filter){ $errors['err']=sprintf(__('%s: Unknown or invalid'), __('ticket filter')); }elseif($filter->update($_POST,$errors)){ + $filter->setFlag(Filter::FLAG_INACTIVE_DEPT, false); + $filter->setFlag(Filter::FLAG_INACTIVE_HT, false); $msg=sprintf(__('Successfully updated %s.'), __('this ticket filter')); }elseif(!$errors['err']){ $errors['err']=sprintf('%s %s', @@ -116,6 +118,22 @@ if($_POST){ $page='filters.inc.php'; $tip_namespace = 'manage.filter'; if($filter || ($_REQUEST['a'] && !strcasecmp($_REQUEST['a'],'add'))) { + if($filter) { + foreach ($filter->getActions() as $A) { + if($A->type == 'dept') + $dept = Dept::lookup($A->parseConfiguration($_POST)['dept_id']); + + if($A->type == 'topic') + $topic = Topic::lookup($A->parseConfiguration($_POST)['topic_id']); + } + } + + if($dept && !$dept->isActive()) + $warn = sprintf(__('%s is assigned a %s that is not active.'), __('Ticket Filter'), __('Department')); + + if($topic && !$topic->isActive()) + $warn = sprintf(__('%s is assigned a %s that is not active.'), __('Ticket Filter'), __('Help Topic')); + $page='filter.inc.php'; } diff --git a/scp/helptopics.php b/scp/helptopics.php index b00c231d500211a30c4ea30d35a2b8c87a7b38d4..ea1d7b8bd147812bec28021627c3399db9a71cd6 100644 --- a/scp/helptopics.php +++ b/scp/helptopics.php @@ -28,6 +28,9 @@ if($_POST){ if(!$topic){ $errors['err']=sprintf(__('%s: Unknown or invalid'), __('help topic')); }elseif($topic->update($_POST,$errors)){ + if ($_POST["status"] != __('Active')) + Topic::clearInactiveTopic($topic->getId()); + $msg=sprintf(__('Successfully updated %s.'), __('this help topic')); }elseif(!$errors['err']){ @@ -63,11 +66,17 @@ if($_POST){ switch(strtolower($_POST['a'])) { case 'enable': - $num = Topic::objects()->filter(array( - 'topic_id__in' => $_POST['ids'], - ))->update(array( - 'isactive' => true, + $topics = Topic::objects()->filter(array( + 'topic_id__in'=>$_POST['ids'], )); + foreach ($topics as $t) { + $t->setFlag(Topic::FLAG_ARCHIVED, false); + $t->setFlag(Topic::FLAG_ACTIVE, true); + $filter_actions = FilterAction::objects()->filter(array('type' => 'topic', 'configuration' => '{"topic_id":'. $t->getId().'}')); + FilterAction::setFilterFlag($filter_actions, 'topic', false); + if($t->save()) + $num++; + } if ($num > 0) { if($num==$count) @@ -82,13 +91,22 @@ if($_POST){ } break; case 'disable': - $num = Topic::objects()->filter(array( - 'topic_id__in'=>$_POST['ids'], + $topics = Topic::objects()->filter(array( + 'topic_id__in'=>$_POST['ids'], ))->exclude(array( - 'topic_id'=>$cfg->getDefaultTopicId(), - ))->update(array( - 'isactive' => false, + 'topic_id'=>$cfg->getDefaultTopicId() )); + foreach ($topics as $t) { + $t->setFlag(Topic::FLAG_ARCHIVED, false); + $t->setFlag(Topic::FLAG_ACTIVE, false); + $filter_actions = FilterAction::objects()->filter(array('type' => 'topic', 'configuration' => '{"topic_id":'. $t->getId().'}')); + FilterAction::setFilterFlag($filter_actions, 'topic', true); + if($t->save()) { + $num++; + //remove topic_id for emails using disabled topic + Topic::clearInactiveTopic($t->getId()); + } + } if ($num > 0) { if($num==$count) $msg = sprintf(__('Successfully disabled %s'), @@ -101,6 +119,35 @@ if($_POST){ _N('selected help topic', 'selected help topics', $count)); } break; + case 'archive': + $topics = Topic::objects()->filter(array( + 'topic_id__in'=>$_POST['ids'], + ))->exclude(array( + 'topic_id'=>$cfg->getDefaultTopicId() + )); + foreach ($topics as $t) { + $t->setFlag(Topic::FLAG_ARCHIVED, true); + $t->setFlag(Topic::FLAG_ACTIVE, false); + $filter_actions = FilterAction::objects()->filter(array('type' => 'topic', 'configuration' => '{"topic_id":'. $t->getId().'}')); + FilterAction::setFilterFlag($filter_actions, 'topic', true); + if($t->save()) { + $num++; + //remove topic_id for emails using disabled topic + Topic::clearInactiveTopic($t->getId()); + } + } + if ($num > 0) { + if($num==$count) + $msg = sprintf(__('Successfully archived %s'), + _N('selected help topic', 'selected help topics', $count)); + else + $warn = sprintf(__('%1$d of %2$d %3$s archived'), $num, $count, + _N('selected help topic', 'selected help topics', $count)); + } else { + $errors['err'] = sprintf(__('Unable to archive %s'), + _N('selected help topic', 'selected help topics', $count)); + } + break; case 'delete': $i = Topic::objects()->filter(array( 'topic_id__in'=>$_POST['ids'] @@ -150,7 +197,11 @@ if($_POST){ $page='helptopics.inc.php'; $tip_namespace = 'manage.helptopic'; -if($topic || ($_REQUEST['a'] && !strcasecmp($_REQUEST['a'],'add'))) { +if($topic || ($_REQUEST['a'] && !strcasecmp($_REQUEST['a'],'add'))) +{ + if ($topic && ($dept=$topic->getDept()) && !$dept->isActive()) + $warn = sprintf(__('%s is assigned a %s that is not active.'), __('Help Topic'), __('Department')); + $page='helptopic.inc.php'; } diff --git a/scp/login.php b/scp/login.php index 0fc0d0991410c3a2a7ee019aab7ee1c91dd9c4ad..6e1854456c5757f4fdab2b3289728b3cc24a34fc 100644 --- a/scp/login.php +++ b/scp/login.php @@ -30,29 +30,57 @@ $msg = $_SESSION['_staff']['auth']['msg']; $msg = $msg ?: ($content ? $content->getLocalName() : __('Authentication Required')); $dest=($dest && (!strstr($dest,'login.php') && !strstr($dest,'ajax.php')))?$dest:'index.php'; $show_reset = false; -if($_POST) { +if ($_POST) { + $json = isset($_POST['ajax']) && $_POST['ajax']; + $respond = function($code, $message) use ($json, $ost) { + if ($json) { + $payload = is_array($message) ? $message + : array('message' => $message); + $payload['status'] = (int) $code; + Http::response(200, JSONDataEncoder::encode($payload), + 'application/json'); + } + else { + // Extract the `message` portion only + if (is_array($message)) + $message = $message['message']; + Http::response($code, $message); + } + }; + $redirect = function($url) use ($json) { + if ($json) + Http::response(200, JsonDataEncoder::encode(array( + 'status' => 302, 'redirect' => $url)), 'application/json'); + else + Http::redirect($url); + }; + // Check the CSRF token, and ensure that future requests will have to // use a different CSRF token. This will help ward off both parallel and // serial brute force attacks, because new tokens will have to be // requested for each attempt. - if (!$ost->checkCSRFToken()) - Http::response(400, __('Valid CSRF Token Required')); - - // Rotate the CSRF token (original cannot be reused) - $ost->getCSRF()->rotate(); + if (!$ost->checkCSRFToken()) { + $_SESSION['_staff']['auth']['msg'] = __('Valid CSRF Token Required'); + $redirect($_SERVER['REQUEST_URI']); + } // Lookup support backends for this staff $username = trim($_POST['userid']); if ($user = StaffAuthenticationBackend::process($username, $_POST['passwd'], $errors)) { - session_write_close(); - Http::redirect($dest); - require_once('index.php'); //Just incase header is messed up. - exit; + $redirect($dest); } - $msg = $errors['err']?$errors['err']:__('Invalid login'); + $msg = $errors['err'] ?: __('Invalid login'); $show_reset = true; + + if ($json) { + $respond(401, ['message' => $msg, 'show_reset' => $show_reset]); + } + else { + // Rotate the CSRF token (original cannot be reused) + $ost->getCSRF()->rotate(); + } } elseif ($_GET['do']) { switch ($_GET['do']) { diff --git a/scp/staff.inc.php b/scp/staff.inc.php index a91b15a2f370bfcb5481f537a3bb3010d6657908..8acf73ceabfe35f2e2f054eb019230ebbd5821c0 100644 --- a/scp/staff.inc.php +++ b/scp/staff.inc.php @@ -78,7 +78,7 @@ if (!$thisstaff || !$thisstaff->getId() || !$thisstaff->isValid()) { //2) if not super admin..check system status and group status if(!$thisstaff->isAdmin()) { //Check for disabled staff or group! - if (!$thisstaff->isactive()) { + if (!$thisstaff->isActive()) { staffLoginPage(__('Access Denied. Contact Admin')); exit; } diff --git a/scp/staff.php b/scp/staff.php index 9b2f4a999c6b6d65b10077dc3ededd2769129a89..97c72edc2c82336a5adfe083edf63cf69e6e60f2 100644 --- a/scp/staff.php +++ b/scp/staff.php @@ -172,7 +172,14 @@ if($_POST){ $page='staffmembers.inc.php'; $tip_namespace = 'staff.agent'; if($staff || ($_REQUEST['a'] && !strcasecmp($_REQUEST['a'],'add'))) { + + if ($staff && ($pdept=$staff->getDept()) && !$pdept->isActive()) + $warn = sprintf(__('%s is assigned a %s that is not active.'), __('Agent'), __('Primary Department')); + $page='staff.inc.php'; +} elseif ($_REQUEST['a'] && !strcasecmp($_REQUEST['a'],'export')) { + if (!Staff::export()) + $errors['err'] = sprintf(__('Unable to export %s.'), __('Agents')); } $nav->setTabActive('staff'); diff --git a/scp/tasks.php b/scp/tasks.php index a918d0ecb90ab79603466577b5f14179b918e4b3..5cd77777f3714b6ff592878ab25ca6ee35a212a1 100644 --- a/scp/tasks.php +++ b/scp/tasks.php @@ -197,21 +197,6 @@ if ($stats['closed']) { ($_REQUEST['status']=='closed')); } -if (isset($_SESSION['advsearch:tasks'])) { - // XXX: De-duplicate and simplify this code - $search = SavedSearch::create(); - $form = $search->getFormFromSession('advsearch:tasks'); - $form->loadState($_SESSION['advsearch:tasks']); - $tasks = Task::objects(); - $tasks = $search->mangleQuerySet($tasks, $form); - $count = $tasks->count(); - $nav->addSubMenu(array('desc' => __('Search').' ('.number_format($count).')', - 'title'=>__('Advanced Task Search'), - 'href'=>'tasks.php?status=search', - 'iconclass'=>'Ticket'), - (!$_REQUEST['status'] || $_REQUEST['status']=='search')); -} - if ($thisstaff->hasPerm(TaskModel::PERM_CREATE, false)) { $nav->addSubMenu(array('desc'=>__('New Task'), 'title'=> __('Open a New Task'), diff --git a/scp/tickets.php b/scp/tickets.php index 841a5df79b30ce7680332212cfe8d44b9cca9fad..112a7f7d581212a1c16ccaab830468af560e6164 100644 --- a/scp/tickets.php +++ b/scp/tickets.php @@ -447,9 +447,6 @@ if ($redirect) { Http::redirect($redirect); } -/*... Quick stats ...*/ -$stats = $thisstaff->getTicketsStats(); - // Clear advanced search upon request if (isset($_GET['clear_filter'])) unset($_SESSION['advsearch']); diff --git a/setup/inc/install-prereq.inc.php b/setup/inc/install-prereq.inc.php index f4346e3f22b8a7c74f005e4dff530950c1ec8e19..97d7a13c48d6332f542e66486d39ee4d7a7f7cc6 100644 --- a/setup/inc/install-prereq.inc.php +++ b/setup/inc/install-prereq.inc.php @@ -9,7 +9,7 @@ if(!defined('SETUPINC')) die('Kwaheri!'); <p><?php echo __('We are delighted you have chosen osTicket for your customer support ticketing system!');?></p> <p><?php echo __("The installer will guide you every step of the way in the installation process. You're minutes away from your awesome customer support system!");?></p> </div> - <h3><?php echo __('Prerequisites');?>:</h3> + <h2><?php echo __('Prerequisites');?></h3> <p><?php echo __("Before we begin, we'll check your server configuration to make sure you meet the minimum requirements to run the latest version of osTicket.");?></p> <h3><?php echo __('Required');?>: <font color="red"><?php echo $errors['prereq']; ?></font></h3> <?php echo __('These items are necessary in order to install and use osTicket.');?> diff --git a/setup/inc/streams/core/install-mysql.sql b/setup/inc/streams/core/install-mysql.sql index 6d5ef523778ea663f14f6d6d94b54030e89d7e47..45482f83f8a448904a1e054406cd9a25c83c9c61 100644 --- a/setup/inc/streams/core/install-mysql.sql +++ b/setup/inc/streams/core/install-mysql.sql @@ -48,6 +48,7 @@ CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq` ( DROP TABLE IF EXISTS `%TABLE_PREFIX%faq_category`; CREATE TABLE IF NOT EXISTS `%TABLE_PREFIX%faq_category` ( `category_id` int(10) unsigned NOT NULL auto_increment, + `category_pid` int(10) unsigned DEFAULT NULL, `ispublic` TINYINT( 1 ) UNSIGNED NOT NULL DEFAULT '0', `name` varchar(125) default NULL, `description` TEXT NOT NULL, @@ -295,6 +296,7 @@ CREATE TABLE `%TABLE_PREFIX%filter` ( `id` int(11) unsigned NOT NULL auto_increment, `execorder` int(10) unsigned NOT NULL default '99', `isactive` tinyint(1) unsigned NOT NULL default '1', + `flags` int(10) unsigned DEFAULT '0', `status` int(11) unsigned NOT NULL DEFAULT '0', `match_all_rules` tinyint(1) unsigned NOT NULL default '0', `stop_onmatch` tinyint(1) unsigned NOT NULL default '0', @@ -420,7 +422,6 @@ DROP TABLE IF EXISTS `%TABLE_PREFIX%help_topic`; CREATE TABLE `%TABLE_PREFIX%help_topic` ( `topic_id` int(11) unsigned NOT NULL auto_increment, `topic_pid` int(10) unsigned NOT NULL default '0', - `isactive` tinyint(1) unsigned NOT NULL default '1', `ispublic` tinyint(1) unsigned NOT NULL default '1', `noautoresp` tinyint(3) unsigned NOT NULL default '0', `flags` int(10) unsigned DEFAULT '0', diff --git a/setup/test/tests/stubs.php b/setup/test/tests/stubs.php index 0d59a25d9117449f1231f2735ae2f95aaca67d9a..052f97d3ac61235cbcb7123cd6e8160ab9ee5234 100644 --- a/setup/test/tests/stubs.php +++ b/setup/test/tests/stubs.php @@ -132,10 +132,12 @@ class SqlFunction { static function LENGTH() {} static function COALESCE() {} static function DATEDIFF() {} + static function timestampdiff() {} } class SqlExpression { static function plus() {} + static function minus() {} static function times() {} static function bitor() {} static function bitand() {} @@ -149,6 +151,8 @@ class SqlInterval { class SqlAggregate { static function COUNT() {} + static function SUM() {} + static function MAX() {} } class Q {