From 2655d0af11df04cd44e071d29b8292d64af7cf72 Mon Sep 17 00:00:00 2001 From: Kelli Shaver <kelli@kellishaver.com> Date: Thu, 19 Apr 2012 14:12:42 -0400 Subject: [PATCH] changing ticket create/status bottons on client landing page, redoing navbar shadow with css, adding kb icons --- assets/default/css/theme.css | 45 +++++++++++++++++++++------ include/class.nav.php | 28 ++++++++--------- include/client/header.inc.php | 15 +++++---- include/staff/cannedreplies.inc.php | 6 ++-- include/staff/categories.inc.php | 6 ++-- include/staff/kb-category.inc.php | 6 ++-- index.php | 20 ++++++------ scp/css/scp.css | 40 +++++++++++++++--------- scp/images/icons/canned.gif | Bin 0 -> 1405 bytes scp/images/icons/delete_category.png | Bin 0 -> 1316 bytes scp/images/icons/edit_category.png | Bin 0 -> 1393 bytes scp/images/icons/kb-categories.gif | Bin 0 -> 1286 bytes scp/images/icons/kb-categories.png | Bin 0 -> 1165 bytes scp/images/icons/kb.gif | Bin 0 -> 1402 bytes scp/images/icons/new_category.png | Bin 0 -> 1344 bytes scp/images/icons/new_faq.png | Bin 0 -> 1373 bytes scp/images/icons/new_reply.png | Bin 0 -> 1360 bytes 17 files changed, 102 insertions(+), 64 deletions(-) create mode 100644 scp/images/icons/canned.gif create mode 100644 scp/images/icons/delete_category.png create mode 100644 scp/images/icons/edit_category.png create mode 100644 scp/images/icons/kb-categories.gif create mode 100644 scp/images/icons/kb-categories.png create mode 100644 scp/images/icons/kb.gif create mode 100644 scp/images/icons/new_category.png create mode 100644 scp/images/icons/new_faq.png create mode 100644 scp/images/icons/new_reply.png diff --git a/assets/default/css/theme.css b/assets/default/css/theme.css index c6a6242df..d004c4069 100644 --- a/assets/default/css/theme.css +++ b/assets/default/css/theme.css @@ -254,6 +254,9 @@ body { height: 20px; background: url('../images/nav_bg.png') top left repeat-x; border-top: 1px solid #aaa; + box-shadow:0 3px 2px rgba(0, 0, 0, 0.4); + -moz-box-shadow:0 3px 2px rgba(0, 0, 0, 0.4); + -webkit-box-shadow:0 3px 2px rgba(0, 0, 0, 0.4); } #nav li { margin: 0; @@ -304,19 +307,11 @@ body { #content { padding: 20px 0; margin: 0 20px; - background: url('../images/content_bg.png') top left repeat-x; -} - -#cnbg { - padding: 5px 0; - margin: 0 20px; height: auto !important; height: 350px; min-height: 350px; - background: none; } - #footer { text-align: center; font-size: 11px; @@ -425,7 +420,7 @@ body { #kb > li h4 a { font-size: 14px; - padding-left: 24px; + padding-left: 24px; background: url('../images/icons/page.png?1319579499') 0 50% no-repeat; } @@ -707,3 +702,35 @@ a.refresh { margin-right: 20px; background: url('../images/icons/file.gif') 0 50% no-repeat; } + +.button, .button:visited { + background: #222; + display: inline-block; + font-size: 16px; + padding: 8px 16px 6px 16px; + width:160px; + text-align:center; + color: #fff; + font-weight:bold; + text-decoration: none; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + box-shadow: 0 1px 3px rgba(0,0,0,0.5); + -moz-box-shadow: 0 1px 3px rgba(0,0,0,0.5); + -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.5); + text-shadow: 0 -1px 1px rgba(0,0,0,0.25); + border-bottom: 1px solid rgba(0,0,0,0.25); + position: relative; + cursor: pointer; + font-family:helvetica, arial, sans-serif; +} + +.button:hover { background-color: #111; color: #fff; } +.button:active { top: 1px; box-shadow:none; -moz-box-shadow:none; -webkit-box-shadow:none; } +.button, .button:visited, +.green.button, .green.button:visited { background-color: #91bd09; } +.green.button:hover { background-color: #749a02; } +.blue.button, .blue.button:visited { background-color: #00AEEF; } +.blue.button:hover { background-color: #0299d2; } + diff --git a/include/class.nav.php b/include/class.nav.php index a3b719f08..ce3623d37 100644 --- a/include/class.nav.php +++ b/include/class.nav.php @@ -42,16 +42,16 @@ class StaffNav { function isStaffPanel() { return (!$this->isAdminPanel()); } - + function setTabActive($tab){ - + if($this->tabs[$tab]){ $this->tabs[$tab]['active']=true; if($this->activetab && $this->activetab!=$tab && $this->tabs[$this->activetab]) $this->tabs[$this->activetab]['active']=false; $this->activetab=$tab; - + return true; } @@ -73,9 +73,9 @@ class StaffNav { function getActiveMenu() { return $this->activeMenu; } - + function addSubMenu($item,$active=false){ - + $this->submenus[$this->getPanel().'.'.$this->activetab][]=$item; if($active) $this->activeMenu=sizeof($this->submenus[$this->getPanel().'.'.$this->activetab]); @@ -105,7 +105,7 @@ class StaffNav { $subnav[]=array('desc'=>'Tickets','href'=>'tickets.php','iconclass'=>'Ticket', 'droponly'=>true); if($staff) { if(($assigned=$staff->getNumAssignedTickets())) - $subnav[]=array('desc'=>"My Tickets ($assigned)", + $subnav[]=array('desc'=>"My Tickets ($assigned)", 'href'=>'tickets.php?status=assigned', 'iconclass'=>'assignedTickets', 'droponly'=>true); @@ -123,19 +123,19 @@ class StaffNav { $subnav[]=array('desc'=>'My Profile','href'=>'profile.php','iconclass'=>'users'); break; case 'kbase': - $subnav[]=array('desc'=>'Knowledgebase','href'=>'kb.php', 'urls'=>array('faq.php'), 'iconclass'=>'premade'); + $subnav[]=array('desc'=>'Knowledgebase','href'=>'kb.php', 'urls'=>array('faq.php'), 'iconclass'=>'kb'); if($staff) { if($staff->canManageFAQ()) - $subnav[]=array('desc'=>'Categories','href'=>'categories.php','iconclass'=>'premade'); + $subnav[]=array('desc'=>'Categories','href'=>'categories.php','iconclass'=>'kb-categories'); if($staff->canManageCannedResponses()) - $subnav[]=array('desc'=>'Canned Replies','href'=>'canned.php','iconclass'=>'premade'); + $subnav[]=array('desc'=>'Canned Replies','href'=>'canned.php','iconclass'=>'canned'); } break; } if($subnav) $submenus[$this->getPanel().'.'.strtolower($k)]=$subnav; } - + return $submenus; } @@ -170,7 +170,7 @@ class AdminNav extends StaffNav{ $tabs['depts']=array('desc'=>'Departments','href'=>'departments.php','title'=>'Departments'); $this->tabs=$tabs; } - + return $this->tabs; } @@ -226,12 +226,12 @@ class AdminNav extends StaffNav{ } class UserNav { - + var $navs=array(); var $activenav; var $user; - + function UserNav($user=null, $active=''){ $this->user=$user; @@ -257,7 +257,7 @@ class UserNav { function getNavLinks(){ global $cfg; - + //Paths are based on the root dir. if(!$this->navs){ diff --git a/include/client/header.inc.php b/include/client/header.inc.php index beefb3bf3..969e9e66b 100644 --- a/include/client/header.inc.php +++ b/include/client/header.inc.php @@ -9,7 +9,7 @@ header("Content-Type: text/html; charset=UTF-8\r\n"); <title><?php echo Format::htmlchars($title); ?></title> <meta name="description" content="customer support platform"> <meta name="keywords" content="osTicket, Customer support system, support ticket system"> - <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <link rel="stylesheet" href="<?php echo ASSETS_PATH; ?>css/theme.css" media="screen"> <link rel="stylesheet" href="<?php echo ASSETS_PATH; ?>css/print.css" media="print"> <script src="./js/jquery-1.7.2.min.js"></script> @@ -21,19 +21,19 @@ header("Content-Type: text/html; charset=UTF-8\r\n"); <a id="logo" href="<?php echo ROOT_PATH; ?>index.php" title="Support Center"><img src="<?php echo ASSETS_PATH; ?>images/logo.png" border=0 alt="Support Center"></a> <p> <?php - if($thisclient && is_object($thisclient) && $thisclient->isValid()) { + if($thisclient && is_object($thisclient) && $thisclient->isValid()) { echo $thisclient->getName().' - '; ?> <?php if($cfg->showRelatedTickets()) {?> - <a href="<?php echo ROOT_PATH; ?>tickets.php">My Tickets <b>(<?php echo $thisclient->getNumTickets(); ?>)</b></a> - + <a href="<?php echo ROOT_PATH; ?>tickets.php">My Tickets <b>(<?php echo $thisclient->getNumTickets(); ?>)</b></a> - <?php } ?> <a href="<?php echo ROOT_PATH; ?>logout.php">Log Out</a> - <?php + <?php }elseif($nav){ ?> Guest User - <a href="<?php echo ROOT_PATH; ?>login.php">Log In</a> - <?php + <?php } ?> </p> </div> @@ -47,14 +47,13 @@ header("Content-Type: text/html; charset=UTF-8\r\n"); } } ?> </ul> - <div id="content"> <?php }else{ ?> <hr> - <div id="cnbg"> <?php } ?> - + <div id="content"> + <?php if($errors['err']) { ?> <div id="msg_error"><?php echo $errors['err']; ?></div> <?php }elseif($msg) { ?> diff --git a/include/staff/cannedreplies.inc.php b/include/staff/cannedreplies.inc.php index 601e27d37..39aaaae81 100644 --- a/include/staff/cannedreplies.inc.php +++ b/include/staff/cannedreplies.inc.php @@ -50,7 +50,7 @@ else <h2>Canned Replies</h2> </div> <div style="float:right;text-align:right;padding-top:5px;padding-right:5px;"> - <b><a href="canned.php?a=add" class="Icon newHelpTopic">Add New Reply</a></b></div> + <b><a href="canned.php?a=add" class="Icon newReply">Add New Reply</a></b></div> <div class="clear"></div> <form action="canned.php" method="POST" name="canned" onSubmit="return checkbox_checker(this,1,0);"> <input type="hidden" name="do" value="mass_process" > @@ -58,7 +58,7 @@ else <caption><?php echo $showing; ?></caption> <thead> <tr> - <th width="7"> </th> + <th width="7"> </th> <th width="500"><a <?php echo $title_sort; ?> href="canned.php?<?php echo $qstr; ?>&sort=title">Title</a></th> <th width="80"><a <?php echo $status_sort; ?> href="canned.php?<?php echo $qstr; ?>&sort=status">Status</a></th> <th width="200"><a <?php echo $dept_sort; ?> href="canned.php?<?php echo $qstr; ?>&sort=dept">Department</a></th> @@ -81,7 +81,7 @@ else ?> <tr id="<?php echo $row['canned_id']; ?>"> <td width=7px> - <input type="checkbox" name="ids[]" value="<?php echo $row['canned_id']; ?>" + <input type="checkbox" name="ids[]" value="<?php echo $row['canned_id']; ?>" <?php echo $sel?'checked="checked"':''; ?> <?php echo $default?'disabled="disabled"':''; ?> onClick="highLight(this.value,this.checked);"> </td> <td> diff --git a/include/staff/categories.inc.php b/include/staff/categories.inc.php index a437338c2..9e90869c0 100644 --- a/include/staff/categories.inc.php +++ b/include/staff/categories.inc.php @@ -44,7 +44,7 @@ else <h2>FAQ Categories</h2> </div> <div style="float:right;text-align:right;padding-top:5px;padding-right:5px;"> - <b><a href="categories.php?a=add" class="Icon newHelpTopic">Add New Category</a></b></div> + <b><a href="categories.php?a=add" class="Icon newCategory">Add New Category</a></b></div> <div class="clear"></div> <form action="categories.php" method="POST" name="cat" onSubmit="return checkbox_checker(this,1,0);"> <input type="hidden" name="do" value="mass_process" > @@ -52,7 +52,7 @@ else <caption><?php echo $showing; ?></caption> <thead> <tr> - <th width="7"> </th> + <th width="7"> </th> <th width="500"><a <?php echo $name_sort; ?> href="categories.php?<?php echo $qstr; ?>&sort=name">Name</a></th> <th width="150"><a <?php echo $type_sort; ?> href="categories.php?<?php echo $qstr; ?>&sort=type">Type</a></th> <th width="80"><a <?php echo $faqs_sort; ?> href="categories.php?<?php echo $qstr; ?>&sort=faqs">FAQs</a></th> @@ -78,7 +78,7 @@ else ?> <tr id="<?php echo $row['category_id']; ?>"> <td width=7px> - <input type="checkbox" name="ids[]" value="<?php echo $row['category_id']; ?>" + <input type="checkbox" name="ids[]" value="<?php echo $row['category_id']; ?>" <?php echo $sel?'checked="checked"':''; ?> <?php echo $default?'disabled="disabled"':''; ?> onClick="highLight(this.value,this.checked);"> </td> <td><a href="categories.php?id=<?php echo $row['category_id']; ?>"><?php echo Format::truncate($row['name'],200); ?></a> </td> diff --git a/include/staff/kb-category.inc.php b/include/staff/kb-category.inc.php index 65c428a2f..619aa6205 100644 --- a/include/staff/kb-category.inc.php +++ b/include/staff/kb-category.inc.php @@ -19,9 +19,9 @@ if(!defined('OSTSTAFFINC') || !$category || !$thisstaff) die('Access Denied'); </p> <?php if($thisstaff->canManageFAQ()) { - echo sprintf('<a href="categories.php?id=%d" class="Icon newHelpTopic">Edit Category</a> - | <a href="categories.php" class="Icon newHelpTopic">Delete Category</a> - | <a href="faq.php?cid=%d&a=add" class="Icon newHelpTopic">Add New FAQ</a>', + echo sprintf('<a href="categories.php?id=%d" class="Icon editCategory">Edit Category</a> + | <a href="categories.php" class="Icon deleteCategory">Delete Category</a> + | <a href="faq.php?cid=%d&a=add" class="Icon newFAQ">Add New FAQ</a>', $category->getId(), $category->getId()); } diff --git a/index.php b/index.php index ac4fe04a0..db492a870 100644 --- a/index.php +++ b/index.php @@ -26,23 +26,25 @@ require(CLIENTINC_DIR.'header.inc.php'); <div id="new_ticket"> <h3>Open A New Ticket</h3> - <form method="get" action="open.php"> - <div>Please provide as much detail as possible so we can best assist you. To update a previously submitted ticket, please login.</div> - <input type="submit" value="Open a New Ticket"> - </form> + <br> + <div>Please provide as much detail as possible so we can best assist you. To update a previously submitted ticket, please login.</div> + <p> + <a href="open.php" class="green button">Open a New Ticket</a> + </p> </div> <div id="check_status"> <h3>Check Ticket Status</h3> - <form class="status_form" action="view.php" method="get"> - <div>We provide archives and history of all your current and past support requests complete with responses.</div> - <input type="submit" value="Check Ticket Status"> - </form> + <br> + <div>We provide archives and history of all your current and past support requests complete with responses.</div> + <p> + <a href="view.php" class="blue button">Check Ticket Status</a> + </p> </div> </div> <div class="clear"></div> <?php -if($cfg && $cfg->isKnowledgebaseEnabled()){ +if($cfg && $cfg->isKnowledgebaseEnabled()){ //FIXME: provide ability to feature or select random FAQs ?? ?> <p>Be sure to browse our <a href="kb/index.php">Frequently Asked Questions (FAQs)</a>, before opening a ticket.</p> diff --git a/scp/css/scp.css b/scp/css/scp.css index 5ccdbe543..90fd975fd 100644 --- a/scp/css/scp.css +++ b/scp/css/scp.css @@ -26,7 +26,7 @@ a { .strike { text-decoration:line-through; color:red; } -#canned_attachments label { padding:3px; padding-right:10px; } +#canned_attachments label { padding:3px; padding-right:10px; } #breadcrumbs { @@ -228,6 +228,10 @@ a.newTicket { background:url(../images/icons/new_ticket.gif) } a.premade { background:url(../images/icons/premade_reply.gif) } a.newPremade { background:url(../images/icons/new_premade_reply.gif) } +a.kb { background:url(../images/icons/kb.gif) } +a.kb-categories { background:url(../images/icons/kb-categories.gif) } +a.canned { background:url(../images/icons/canned.gif) } + a.staff { background:url(../images/icons/list_groups.gif) } a.user { background:url(../images/icons/list_users.gif) } a.userPref { background:url(../images/icons/user_preferences.gif) } @@ -268,28 +272,28 @@ a.newHelpTopic { background:url(../images/icons/new_help_topic.png) } a.departments { background:url(../images/icons/list_departments.gif) } a.newDepartment { background:url(../images/icons/new_department.gif) } - + /* Generic CSS based Icons. use=> <tag class="Icon iconname">text</tag> */ - + .Icon { width: auto; padding-left:20px; background-position: left center; - background-repeat: no-repeat; + background-repeat: no-repeat; } - + a.Icon { background-repeat: no-repeat;} - -a.Icon:hover { + +a.Icon:hover { text-decoration: underline; } .Icon.newstaff { background:url(../images/icons/new_user.gif) 0 0 no-repeat; } .Icon.newteam { background:url(../images/icons/new_team.gif) 0 0 no-repeat; } - + .Icon.Ticket { background:url(../images/icons/ticket.gif) 0 2px no-repeat; } .Icon.webTicket { background:url(../images/icons/ticket_source_web.gif) 0 0 no-repeat; } .Icon.emailTicket { background:url(../images/icons/ticket_source_email.gif) 0 0 no-repeat; } @@ -299,7 +303,13 @@ a.Icon:hover { .Icon.assignedTicket { background:url(../images/icons/assigned_ticket.gif) 0 0 no-repeat; } .Icon.lockedTicket { background:url(../images/icons/locked_ticket.gif) 0 0 no-repeat; } .Icon.editTicket { background-image: url(../images/icons/edit_ticket.png); } - + +.Icon.newCategory { background-image: url(../images/icons/new_category.png); } +.Icon.editCategory { background-image: url(../images/icons/edit_category.png); } +.Icon.deleteCategory { background-image: url(../images/icons/delete_category.png); } +.Icon.newFAQ { background-image: url(../images/icons/new_faq.png); } +.Icon.newReply { background-image: url(../images/icons/new_reply.png); } + .Icon.file { background-image: url(../images/icons/file.gif); } .Icon.refresh { background-image: url(../images/icons/refresh.gif); } .Icon.note { @@ -307,14 +317,14 @@ a.Icon:hover { font-size: 1em; background-image: url(../images/icons/note.gif); } - + .Icon.thread { font-weight: bold; font-size: 1em; background-image: url(../images/icons/thread.gif); } - + .Icon.debugLog { background:url(../images/icons/log_debug.gif) 0 2px no-repeat; } .Icon.alertLog { background:url(../images/icons/log_alert.gif) 0 2px no-repeat; } .Icon.errorLog { background:url(../images/icons/log_error.gif) 0 2px no-repeat; } @@ -368,7 +378,7 @@ table.list thead th { } table.list th a { - + text-decoration:none; color:#000; } @@ -927,14 +937,14 @@ h2 .reload { } .tip_content hr { - + color: #ddd; background-color: #ddd; - height: 1px; + height: 1px; border: 0; padding: 0; margin: 0.2em 0; - width: 100%; + width: 100%; } .tip_close { diff --git a/scp/images/icons/canned.gif b/scp/images/icons/canned.gif new file mode 100644 index 0000000000000000000000000000000000000000..8539a783ddfb80608aad5107785e3e67aa791c57 GIT binary patch literal 1405 zcmZ?wbhEHb6krfwxT?$W|NnmmAP8CZeTr<*j_2CbE?u~A;rjLK&a3Ym&Ao2D<c`vW zbIKFWSuMG3z2vsn#>Y;p9~jTQrrdu{YuY8_dDjmfJQTR&xpe0#>CV%;ckkAoe#v<5 zb*EMLy*E8}Uj5+2$rD~1pWMBB_u!#J-kY8T?RatU;K7q8PkL{B^625i6DLjtZGWyj z;k@_8$53a0oI)B<{LdZX8=&BlSds{&ZR{%w5|gu2OB9k)(=+pImEP~(ucVNfVyhHx z>TBRz;GCL~=}}db8eHWUl3bOYY?-2DZ>L~WVO5b^kegbPs8ErclUHn2VXKswlAn}n z1!RMS^_3LBN=mYAl^j753Lrb3^NUgyO!W+OlMT!a6wD0u42@09&CPWbj0_A7^bL&k z4UKdS&8>`$tPBhkpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$uiRKKzbIYb(9+Tp zWQLKEE>MMTab;dfVufyAu`<jAm(=3qqRfJl%=|nBkco*&`K2YcN<f!FypUS}H#V<W z59}Si<osOyio^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgisro^w#rdU0$*Dl) z${?!>telHd6HD@oLh|!-V4)b0kzbNuoRMFk;2dnK;G3A7nFr#7)%*HddFB<DB<3Zj zdb-#u0Zq`$%uKOzGdHrdaC0`cFfw&DG;}p|vb1n=bu}<_GcqxBb~ZAA>2=9ZF3nBN zD}m`vLFhHXsTY(KatnYqyQCInmZhe+73JqDfW2&$iN!6>hUPAg=1#6S&4cPq!R;0! zoO<<vj?o82EK)?ngn+3B#DphXAP1iCQ}ckSy$G1B8UO$L`{(zspFh5T`}*bcr;i`r zzkB=U^{baJo<Do~<ng125ANT)d*}A8n>VgsyL#pFrHdENpF4Zz^r@34jvqUE<nW<` z2lnsVyJz>VojbN~+qz}*ri~lcuUorj^{SOCmM>enWbvYf3+B(8J7@N+nKPzOn>uCk zq=^&y`+9r2yE;4C+ge+in;IMH>uPJNt12tX%Sua%iwX<!^Kx^tvobT%(^6BClM)l+ z<6>i?qaq{1!$L!Xg8~Em{d|4Ay*xeK-CSLqog5wP?QCtVtt>6f%}h;<jeuE7Pgh4< zOH)H#O;tr%Nl`&wPF6-*N>V~xOjJZzNKk;EkC%s=i<5($jg^I&iIIUp@h1zA)Md~C z6)B+dj)AT2z_bDn9jW%lB}SDwtPB@25;RtD&1q;XW0(=f-{$Z6p~s1tDTE_uRm!|* zy<gcLohP1cZn&_KOROL|mPt%OhD(H1C^aoZi(igUkX5@es+mQZgO^jdyK;s)2Nx$R nkGFTVjsTyu6t{S|E0YSp0M}$5iA|fCX3q`vb*ek$$Y2csqAK}M literal 0 HcmV?d00001 diff --git a/scp/images/icons/delete_category.png b/scp/images/icons/delete_category.png new file mode 100644 index 0000000000000000000000000000000000000000..7afa4a1a80afe76791fad19ecdb62b7dcb8fb47f GIT binary patch literal 1316 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=Wn~R&Jk+G45k*S-Zp{t>jrG=BLtAU}Lk%^(R zvylNzuS<S%X>Mv>2~2MaLa#ASy`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-@<zX&zK> z3U0R;;?%1Tbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3eRS%_PzDCZ8J;eVAr-fl zOt$rAb`)s4e|E0sqEwz65t1T;f=cXx+y~wM2sTYnnkzP~D&fi@2Zaf09xneKk2tAB zbf~#(+#u+(QB28cR?Xe;YkT)TvFj01WIlf9-MKx#&z#d+I3-EobE1RrZ`Ko=eE#cB z=>C1@pvtt|&+}cBK2EQ2Ur^d}Cv48KOOft9y)zXYGmZ!CURgQm<);qk1h)JoMg}~+ z{_kW%FL*Ao7q0R$*m!-iro^sO+ZL92iQhi*#(P1gukjHtwRO%3p1W%~YGN5<vmGw$ z-fz}@&+M&jkoIh$&)LZ2a&eQboTom_<!Z}iTD58Ba`%K>QK#DtAO1A0pKQz$8n$VE z1k0+ZbS2(rv+wNYjQYu)V92#0C2v>X11FL7FMFI5xGHk5sQp+GW+=wNaC`Q-Pl-ZR z|L$lzRGjxX@45f_%!-vfBHrf?O^{!tVb#7ut5oAn@Kh<`)s?#p1UnZ5?PF&-I4fme zQTUN1Dv5tSHwaH?zufeFU%Se3?(M8CX{vi-<2HUO-B)ZO<Cgbp)_cdg>T`eP1a_yC dt-a60!%)Y!^G-qP+ApAT%hT1*Wt~$(69CSz)Vu%y literal 0 HcmV?d00001 diff --git a/scp/images/icons/edit_category.png b/scp/images/icons/edit_category.png new file mode 100644 index 0000000000000000000000000000000000000000..cce44c7ff6efee4891f7cb6a99936b1a8447eeb3 GIT binary patch literal 1393 zcmaJ>eM}o=7(Z5F1CPPdZMH<S%gu$%ti2Du)=CHclsXCsgw-tFxc08lLGO<1m9}Iu zSYk7#PW@++2#5*6nUMLhFcC!7bYVe;n22#8Un)b58gS?w(6n9|W&R;va`(Q^o8RyE zJn!@TaxEoA&m||NB>@1CY%I`~3TtZg-IXAG53EE8VUhBBGhfEoc@M!+fSP2i6l8P~ zRa7ZOkiNPRDi;7mu%q0}n@xpE8{?D{QH<Q{WCb<=<mP!<!d64^kd>-(&?<OoU<igB zqzXQfWkOA?ma29XG;mZ|Ls7Y{p~j{l;k;u|u2(4tI4Pchyv|zMrSz)c4PB+Mj~*j1 zv;pC3RPe*1%%&1Z%WxEwB}Zj8G#iDoF*%lznUj-q1j11aMNk~Ua2b}P%)pf>3T-~H zkc}hl%2J(SGnWvl;A);{l?dYTc;uc8Im1;Um_nh5YT&p`K*(G^nkT$6+I29dprc$i z&cX5yhK8bwgq3mgDp;uW;T4?hmMrbsY?IJ1#7nRUCP$-JiUCcg|A#uATWA+wN<FIg zKZRZ8K9)jCDHr4BY{KB|2cxN2rIw=zp5e+FrZ(2al4^!$T-6K<Y0I)86Jc}E(Rc%I zGAWI;izjFsWz?x)K|$_tkjiX>&Y-|?{ZTy2fMI$}qd2P3>ru>rXJT3{j>fn;#^!cX zG#}%VkGO_yxlt=PSs}BI;vDr9Y2X+qv~gvnWBXdP+v;s{$?a>=ZOcW3Vvy)y|262? zk>H-_cFVRxuw{IT7TnGWwg!LMM*=|HU87E2?wzuRB9T1Np{AB*%?(X~+G3fB4CFm6 zk#z31Otr_0Z}EXPusec+;(--Q8__X>_<h}Z(#7S|_6yInC+%m>oY8QB*Ixu(NqG3Z z!q#T%onx~jV6X8K2)^aPLZ7<DKVOX82?AY;k34vAZfGdbclGzgVB_rJ{IQ}+)!*(J zsie8_LGQ0=-Eq*{KlC?9!{OEViIBJ;LiVj&&J!<;r6;_0I$bh5bZ&h4{>-!fl}mNt z<o-S2=-`i1Ny=HZJFql2CvA+Z2A0>qE%x86*xk7}4!)XlQ~GiLb=-V!+Ui}uFAGj2 zKOwp7uF42`=HqOjC>#n8zcDp(>%+dq$3<UjFDyE!Suk>Hjx_rg5~uAFL(A~o(B~No z#TAdOiFYl%f|ERLZ#}gbTwWTJ`5&}%^H)w@M4k$*{k5;hSKo0+`)8L8JpRQ?((vG5 z;>3~B&fBXydQvAVQk#4t`o=l-`PFfBXLZ4EUE=)9;8&A%VDEZ=N#;BsxYzMyf?@dm z`Mo=FaBt;k{$ct6{LS~-^FN*NA5Wid?lI+mf}=gNRzG{aOnUK}+W+!e+m4muFTab= zZu(;(WVvE2ybXSEO`Y~`)0=xv)+bQVSt;0>A|Yy<01*)U?Cw(Joyq9W6)@_HbXPT% G=l=l@;R&Mv literal 0 HcmV?d00001 diff --git a/scp/images/icons/kb-categories.gif b/scp/images/icons/kb-categories.gif new file mode 100644 index 0000000000000000000000000000000000000000..4a0293cfd78eb8795a05301ad88ec87e56c5da61 GIT binary patch literal 1286 zcmZ?wbhEHb6krfwI3mmN|NsBm+FFMFpJ%5t-n$z6|NG2KC)_WcbpP{Z%7^DQH_it? zxt;OlP210peJ>vseR<RR<aXw(hsE!o*Z%y__wz&V&yT(DpVz#6SoG>)(UUtFH_iur zdEIvNd=SuB1~5?k&mG|#px}~Nk_e=2>?;Zqle1Gx6p~WYGxKbf-tXS8q>!0ns}yeP zYv5bpoSKp8QB{;0T;&&%T$P<{nWAKGr(jcIRgqhen_7~nP?4LHS8P>btCX0MpOk6^ zWP^nDl@!2AO0sR096=HaAUmD&i&7O#^$c{A4a^J_%nbDmjZMtW&2<!v3=9qQ4UF^+ zjdTsot&EMV3=9;YKnZADQA(Oskc%7CE+EfVDWjyMz)D}gyu4hm+*mKaC|%#s($W%S zhLMpjP=#)BWnM{Qg>GK4GRy>*)Z*l#%z~24{5%DaiHS-1r6smXK$k+ikXryZHm_I@ z>>a)2{9OHt!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG`a!A1`K3k4sX*n* zAgc<joQqNuOY)0C^7C_Gp%{>nUy@&(kzb(T9BiuKo0y!L2jYX(`}$gW<`tJD<|U_k zy4WfKP0-8COtEq^H?p*Fb2hgyGIcdHbTxFcv~Y5DH86BDGBI>^HZp+eb;(aI%}vcK zf$2>_=(WJ97nBro3xGDeq!wkCrKY$Q<>xAZy=;|<+byOz&4cPq!R;0^oO<<vj?o82 zEK)?ngn+3B#DphXAP1iCQ}ckSy$G1B8UO$L`{(zspFh5T`}*bcr;i`rzkB=U^{baJ zo<Do~<ng125ANT)d*}A8n>VgsyL#pFrHdENpF4Zz^r@34jvqUE<nW<`2lnsVyJz>V zojbN~+qz}*ri~lcuUorj^{SOCmM>enWbvYf3+B(8J7@N+nKPzOn>uCkq=^&y`+9r2 zyE;4C+ge+in;IMH>uPJNt12tX%Sua%iwX<!^Kx^tvobT%(^6BClM)l+<6>i?qaq{1 z!$L!Xg8~Em{d|4Ay*xeK-CSLqog5wP?QCtVtt>6f%}h;<jeuE7Pgh4<OH)H#O;tr% zNl`&wPF6-*N>V~xOjJZzNKk;EkC%s=i<5($jg^I&iIIUp@h1zAlx5HXl@y@zh=Dad zLA@^}bDoCenm1N_8zdM?WILP}^550@!*n3GL1SCiHpk?kg=bnA5)2F~49s}$3wv%= zQR!UHuOZ_iGoxF~bFrS$gjNf$WkT;-OlPlps3DT1tHaFJ%ARcR#LjMGU=ZzTquQjS ItjJ&u0LGo+$^ZZW literal 0 HcmV?d00001 diff --git a/scp/images/icons/kb-categories.png b/scp/images/icons/kb-categories.png new file mode 100644 index 0000000000000000000000000000000000000000..2a175ed4eea1dc8fa682a46254db4bfb7992f535 GIT binary patch literal 1165 zcmaJ>Z)g)|7{4^6R%1aF9C07^azznb?q8dxxizLqF13+e2}!_y(3#8K+vI5PPw(C? zX+Nx4TSY;zB4{a!qF*eCAR7o4w2BC#gW^7n4WyKU;5O*~&@y49d#`QkJ}f)9d*A2f z_xnB1`#eAHe5&_Y^R5HC2!d!%_6TXb?s49xM*RKc&vgkeK9uM~8KWPSBnuKz#mGaD z)T9DTLrEDKdI38L!cD5#KGY|E&dY{INe+f8YbItBL}#RIO7Z|iAP)<w9wt}j9+N;- z!sLm7$cSbf7S*0n3uZ=pv-0SG98$>0QP5fDv494V1j^c=Zu8|ZxuMJBy>m>HU;}~% z!sKRAePRm44GV$*#rS2WodNAE#kRHugTYS$$FK~|a5T&L*&yG_@eBjD9ujA>lzu)f zbZ_OtQJ5?uWb!m!DwU{GD`i*(nhk|Qjt0m1F~V<;=twI2b-SgeAV6ETR1>L&4je@( zZw#X_i7VZ_f@W^Z>h@NfaKq@bWYR3fI9I9xMe+ZknzoI$Q5t@z_dkX0?1%~JG_;Lj zOU8riZ*fwYeB6Q(GOVm&4A#1sDjLYJi-rl}nE((aS=F6*122kvQn!($%P=W~NvuGr zs=~+Fpb!nlIy$&Of@KqIEYuN8Bp9}vYh&Yaj;V14Lmt+kj%r-x12<Hc>sUcEab^Kp z>X%UIwhRqyT$xwv*V0~BZ;PwcuO(QQOXFf_XR!YobnOVc$JuV%76;qLhdOq<g>CIw z`(u_MT&|=L&6a=4|GmB*aUZOl|2j4w>xrH^^=9l=^YrB>lXs_C_&mbgo}Jx!bt&ck z>Q#O^Gxd7}KHWVjbsb&k>TbM$;GDYS(amCYWq!hR^$g`#l(Ub=#wI);e|DPd3RI8% zP+9U!eY5;<)K{&(_k8;{a?<<iM^M;{o~$e`MvsFT-=zlEo!Ki>-drOy{^n)VWK*VV z=I1qb&(iqmMPJo@{o-$~pi2F<`pc1Luh%aun9GO0^W@yA%HelZ<&5j0AAB^QZ+PH} zTsm3V@7>)C?=&_vdsjoAw>Pdm@D38oFW%3kzMq@+eNmWbd-`kc*_G=%A;^&vbNj$N XLA@StS$KDI#`!@c6TQN{SZ@3u*0qee literal 0 HcmV?d00001 diff --git a/scp/images/icons/kb.gif b/scp/images/icons/kb.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe969df4e22a5dfe437757e096b4b251d5684360 GIT binary patch literal 1402 zcmZ?wbhEHb6krfwxN5?{5VFjr=k)*YGZ`2d{{R2~eTuB##IxT0XX;kmjGuY2dfAPV z#n;Z9Ig>i)Qo(|&0h7)p&%P8q<y_738#(i@1WY_vvGhj7)br&_ZiGxZ@7{MNapuJ} zYu5NqJR3IUT;77KISZ~-EWPg8e>!9CmFVdg116o#m~+{8!kO|V*K3yD2%B=gYT1p4 z4<ANNzYsC)LczkTMGLP5O+FVp{X)v@OI1s60Nn$06@H-jpF6@gK*1%kBoRp4*jE%J zCTFLXC?ut(XXe=|z2CiGNg*@ERw>-n*TA>HIW;5GqpB!1xXLdixhgx^GDXSWPQj+a zsv@@_H?<^Dp&~aYuh^=>Rw*$hKPlA;$OZ}PD=C1Llw{i~If5h<Kz2Ik7o{qg>KW)J z8<-g=m>KFB8k?A#o9ieT85kPq8yM*u8tEFETNxW!85k%)ffCTRqLehNAQv~NT|l0# zQbtKhft9{~d3m{Bxv^e;QM$gNrKKgv3?n05pbFjM%Dj@q3f;V7Wta&rsl~}fnFS@8 z`FRQ;6BCp2OG|8(fG&l2A-4c-Y+kV**gJa3`MLTPi3R$GdIlgb!4&%X;#ZoR3s+rS z5|oN?FIIz#Ln;eW^@CE2^Gl18Q-R8rK~@!5ITxiSmgE<O<mczWLNOpCza+mnBfmhw zIoMReH!(Rg55xzn_w}{%%quQQ%u7!7bg@+enxL1NnPTN;Ze(fU=Imr)Wa?^Y=xXR> zY2oDRYGCMQWMb&-Y-9k_>yn>bnwy$e0@Is<(Cds-FDNPG765H_NiE7OOHFYr%Fk5* zd)X=zw_7Z6ng`XJg4->QIQ8lS9itD5Sfq%C2?0|NhzU=&Kn^_Nr{)1udl4{MGyebg z_s{QNKYx7x_Vvr>Pai+LfA{vy>sK#dJb(7|$>T>4AKbrp_s;EGH*Z|OcJ<2TOBXMk zKX>-b=~E|996xsS$l*f=5A5H!chBx!J9li~wsp(qO&d3?U$=J6>QyUOEMK;C$>K!| z7tEhGch2ltGiOYnHg(G6NfRgZ_x1L4cXf8Ox3#u3H#IiY*VWckS5;P&mz9<j7Zn!d z=jG;PXJuxjr=_MOCnYAt$Hm4(M@2@2hlPd&2L%TB`}z8KdwF`eySchJJ2^Vo+u7P! zTUlC|o0*yz8v(PFp019zmZpZfnyQMjlA?mVoUDwrl%#~Xn5c-bke~oRA1@C#7bgch z8!HPl6C(qI;!hSJX~LibDndZz9RpkSfd&Hx4YAA<DrY$Y^k#ZAOt@KMw$z1%Y3TyJ z>A{^zY*xB)ecCfttP<d8YD`~rj7cxQu`Xbhzj!`twLqPVUI9}RGiNJ<d{tASPOlPg zXQ8fUuaT5Ck2JG{K`*BvGY>Pf3R|zTn5-Z_n;Ls*2!n_WyP~AKpXYW@M+R#E?i>NX literal 0 HcmV?d00001 diff --git a/scp/images/icons/new_category.png b/scp/images/icons/new_category.png new file mode 100644 index 0000000000000000000000000000000000000000..ef036c2565f43c132824f9fb8d89128d70918290 GIT binary patch literal 1344 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=iiGiDmk%g&+k*S-Zp{t>jrG=BLtAU}Lk%^(R zvylNzuS<S%X>Mv>2~2MaLa!N4y`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-@<(X&zK> z3U0TU;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3y?Lt_9|Hs97Ec$)kcwML zfByfsXI5?KY;-!{<lz__d$)cO?~KU@Th`1lOg(0Auz2N4≷WnCs3Y%?O_G(LVJM zPfMbM-313XwvAF9ne6)(Wc+)7pt*q2qcG`xO56VW`es&X>v$sv(|_*Q8y>Pw*!*}` zmE^yFKUudtvyb6Eb5kK*sN~@L`}ZBa6lO_IWMW*ga@qv$1U7@FyQeu?ID#E!z4~To zkYf{nxZvNp!Z!W;`x&nOODr(@l=8tm$I<A)_42m=4$qZq4)B&Al-fU^$6P)>*&w_; zX@XEtvPD%b^WnDU)sp`j4tL8=no#%m7njKs=?VY%mQDOy`QcC=n{H)tTmAq4MlVjc z82$PCzx|-g>5jy2yMA^|;Q$)#uki0H>lrt`X7l%U1{*dO7*@P?W-`8>tJ=J%MeKt1 z{{Y?}yhbc<xI)Bh{(PGI@YmyD9^q~5%|{)+>=h4}jEI~$frsJNKj9}$^WzV!b0}+U z-KTeW=4x??88c=`Zi~xdx~#50KXHSZS;B<st4w?@$0mO+U%0H?(0Iv;+eZVo-I$d4 zdttLf`g``<YgR8jqOh}?{|291&dr$tY)ooK6<LfN1`I#GTuTdU>L~=3X`ZfrF6*2U FngH%m=otV2 literal 0 HcmV?d00001 diff --git a/scp/images/icons/new_faq.png b/scp/images/icons/new_faq.png new file mode 100644 index 0000000000000000000000000000000000000000..49bb3baecc76753b9b76e50190844ef6223dd861 GIT binary patch literal 1373 zcmaJ>eM}o=96szMd=y-CVRRF@+#<=s+TL9$r3W3*ueFIqz9!W_l;iqBEA;Mmca?&U zmJb`zElz{VqDf(yiDq+R&`mQK!)}-*j77tA0nLmia|;G^Fo$9EykivoV|bUl_x-(j zp6B<Ox3{ulUq;%FGzfw+oDOTXv~HEZlw|3jyC{;<q7rOwp@wM`T1gH-<sPO1z)nBe z1gZh)X*+NUlt7RI@zuHox9cf_V*DCX#%O|mR$@a?NokNJsb(O+4WP+Kn~;UGV+ic? zn2<WX3w5y;;PpA$IZ)GHQA@QqQ$`O`x)&}95|V%)2qYZzx6nKhG$CucgtV8BwFtZh z5t>cN{h-{gO4!110M=_zHH8+Ua3Q9_bOi>3VGoR>7^+2aErzQx1EIqS6ouCxMDoUY z8i{JFechL2nGmlau!L6I+S;mV)oB>6NsAecMp*;L)e=I@x6uL_RMY&fgn||D6z5|F zA49{kBH6$M1QQ}fdOrm}yCF;S>t&J(rVWy;7So_|N(rFL_5V=6e*?`6)!^TFA1KV% zwy{844R|KNQBva?cge0;!omSkV7OX_X-QPE(#r@8?`2rnQlp1mB;})Jdkyb$5l)&H zNSXpps|k@5G(Mk)D70JcMqF1|gzN1XX2Z<JBD2kgVs^X$vsiF6!L>3}zz=94!SzU7 zV*zR}z>B1J6Rtc8epd2q1)T3C;IVUzA6`qD@NFJT!KQlaT+ahyS<geiDOW26qm>)` zpGGH+r0J2j8)GXO8-ovMY1%nytouGJ-UC5N-#V@3wZWN&d!ksXNI|m}UPalkI68Ic z+LPhraK`SLMe&DEUvOiN%%1BbZI_|1Q4>7ba~TzsfuwH7>_t(G4-$P3M~92wzczT% z#9GRpxBZp*dQ#a+*_LcU&!f}dPd@Yp{`r@Xe!laB1>0g&cHCP|ns8k$8(bKUhoVUO z@nTUFpM$bimTo<k-97zFh9YHo{QO&e=l`JQw+&p_Ka`T6pP&6}s^UoFM|b1bsb!2& zEB1A5J902bvzn{Mt71QwTK7Be7$P^G(L`p_T=3nj*u?C!%FvxRb<-zLH!ZKOJQ9m! zKRrM+wImPNtN3pM$)AMr$k{6zy#GWo=1Bb*dwld<Cm9>Rstm>B@!Xd0F1@D9nf?Mt zJy|1-MM2Wg{q6`B8xupSC16&?<6^A-7`TAG{L?E#Pvjly>zxQK&MOo<)3<k@>B#Ai z&Yga{yvm$@^PNzCa(EO9jQ@5es<PT_s=Xb5PqC|i?vA9+c8|YUwluoEuJg0;o*3ly zcJ)WY5%<kG{DZIBJ3D)OkCJm2^U#C0Z>y4<DTU*hdFpU<$K+7nts5D%@;&B9Me$D0 q@Tth7mb%{$*p-TG2Q+kCxwRfTcT|^o2JIh{FFdEM!g|VF-}MjRc=U(> literal 0 HcmV?d00001 diff --git a/scp/images/icons/new_reply.png b/scp/images/icons/new_reply.png new file mode 100644 index 0000000000000000000000000000000000000000..b09dc40666dab28f988f1a261c696c8a006211b2 GIT binary patch literal 1360 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+n3Xa^B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA<wUD9OyvQvjKmn3P{y zVygsnDZ~r81#n~YilM;-3^4tQ!~%UoJp+)JU<!SG@hi>Eg{v+u2}(t{7puX=A(aKG z`a!A1`K3k4z=%sz23b{L<y@4SSdw29lAoUg3&ntp{F40QjQj!x=U`I>-^Aq1JP;qO z-q+X4Gq1QLF)umQ)5TT^Xo6m5W{Q=iiGiDmk%gs&k*S-Zp{t>jrG=BLtAU}Lk%^(R zvylNzuS<S%X>Mv>2~2MaLa!rEy`ZF!TL84#CABECEH%ZgC_h&L>}9J=+-@<)X&zK> z3U0Sp;MA)Rbc{YIVv!;mCIn19ASOK70y*%6pPC0u?M1+3{a12@7y|?25l<J#kcwMN zCi`l*1d1I0|NW=OG_gr8BFC<n?BnX4bWua|RJvGM*(M=vog12}n<li%b{=sO^YRp0 zHlaV!xO-xdN><jr+V{P$_Zi=tA?Z@N_xHQn_wznm|1UmY>BG_ZKj!3qNrPiY_A@;D zI@yb}pMAr*r!L-Ux>t7I+0nb@-+|>!r!SfZvYoRGS=Y2$rgZanrHc={xk_|84@}|S zmFRHUgh{}K$)xx2<BtJc_cc3~O|Y(D@OCsw*Su%^zvI4$z=E~w<zkEjjCRRyj||9e zu7As)uArgSynD4<)1d&<*kuar<|i^fm#{3K*~-z@bfJ{_-6ypz$Fw>^q5}L{HlI?v zf8DRGu)4f&Rg(E8<F0}Sw+|e<r`5B;PpvCd=X9h?K!*YAw{v9)=T{$?&2f0<<<1QT z0h#*85B*BwIdG~u;>~8pCy!tLWL<gkWky-w#qW*BM4zPJOx4QgWav6)_sD&Y@3U+J zmiu=Nmu<g&^3<Ha{NWy+foHM|k9KK4n&p2XcipPFd==}@Ezt11VI{x(=Ziz!;jWom zCNAPMDY>qo;vctk;p3|BlX}{s(h3S6tKUpZX<y4Qd2hRp*n|S1`2VaMZ+*^H-pg&k Y5bAeo%YtN{J)knq)78&qol`;+0A<4SC;$Ke literal 0 HcmV?d00001 -- GitLab